Unified slider control for modifying multiple image properties

ABSTRACT

Some embodiments provide a novel user interface (UI) tool that is a unified slider control, which includes multiple sliders that slide along a region. The region is a straight line in some embodiments, while it is an angular arc in other embodiments. In some embodiments, the unified slider control is used in a media editing application to allow a user to modify several different properties of the image by moving several different sliders along the region. Each slider is associated with a property of the image. A position of the slider in the region corresponds to a value of the property associated with the slider.

CLAIM OF BENEFIT TO PRIOR APPLICATIONS

This application is a continuation application of U.S. patentapplication Ser. No. 13/629,514, filed Sep. 27, 2012, now published asU.S. Patent Publication 2013/0239057. U.S. patent application Ser. No.13/629,514 claims benefit to U.S. Provisional Patent Application61/607,554, entitled “Unified Slider Control for Modifying MultipleImage Properties,” filed Mar. 6, 2012, and U.S. Provisional PatentApplication 61/607,525, entitled “Content Aware User Interface for ImageEditing,” filed Mar. 6, 2012. U.S. patent application Ser. No.13/629,514, now published as United States Patent Publication2013/0239057 and U.S. Provisional Patent Applications 61/607,554 and61/607,525 are incorporated herein by reference.

BACKGROUND

Digital graphic design and media editing applications (hereaftercollectively referred to as image editing applications or media editingapplications) provide graphical designers, media artists, and otherusers with the necessary tools to view and edit an image. Examples ofsuch applications include iPhoto®, Aperture®, iMovie® and Final CutPro®, all sold by Apple, Inc. These applications give users the abilityto edit images in a variety of manners. For example, some applicationsprovide different range sliders for adjusting different color values ofan image or a video.

Many media editing applications, however, do not provide intuitiveexposure adjustment controls. For example, the user is required to haveextensive knowledge about exposure editing in order to effectively usemost of the existing exposure adjustment tools. Furthermore, thecontrols for adjusting different aspects of the exposure values of animage are dispersed in different locations of the user interface. Thesedeficiencies cause unnecessary inconvenience in editing an image.

BRIEF SUMMARY

Some embodiments of the invention provide a novel user interface (UI)tool that is a unified slider control, which includes multiple slidersthat slide along a region. The region is a straight line in someembodiments, while it is an angular arc (e.g., along the circumferenceof a full or partial circle or elliptical shape) in other embodiments.This region is referred to below as a sliding track.

In some embodiments, the unified slider control is used in a mediaediting application to allow a user to modify several differentproperties (e.g., color saturation, contrast, etc.) of the image bymoving several different sliders along the tool's track. Each slider isassociated with a property of the image (e.g., a color or tonalattribute of the image). A position of the slider on the trackcorresponds to a value of the property associated with the slider.

For each slider, the track specifies a range of values associated withthe property of the image. The specified ranges of values for two ormore sliders may coincide in some embodiments. Alternatively, orconjunctively, the specified ranges of values for two or more slidersmay differ in some embodiments. For instance, a range of values for acolor saturation property of an image may be defined so that each valuein the range specifies a different amount of color saturation for theimage. Also, in some embodiments, different types of ranges may bespecified for different sliders along the track. For example, the rangeof values can be defined as a set of continuous integers (such as 0 to255, −127 to 128, 500-600, etc.), as a set of continuous decimal values(−1.0 to 1.0), or as a set of logarithmic or other non-linear values.Moreover, the number of values may be different for different rangesthat are defined along the track.

In some embodiments, one position on the slider track is associated withmultiple values for multiple sliders that relate to multiple propertiesof the image. For example, a first position of the slider track may beassociated with a contrast value of 50 and a saturation value of 75,while a different second position of the slider track may be associatedwith a contrast value of 60 and a saturation value of 100.

As mentioned above, the sliders in some embodiments are individuallymovable along the slider track in order to allow the user to changeproperties associated with the sliders. For instance, the user canchange a first property of the image by moving the first slider whilechanging a second property of the image by moving a second slider alongthe track. Two or more sliders may occupy the same position in theslider control in some embodiments. As each slider may be associatedwith a different property, different operations may be performed tochange the overall appearance of the image by moving different sliders.By using the unified slider control in this manner, the user may adjustthe appearance of the image by changing several different properties ofthe image. Different sets of properties are associated with the slidersof the multi-slider control in different embodiments.

The preceding Summary is intended to serve as a brief introduction tosome embodiments of the invention. It is not meant to be an introductionor overview of all inventive subject matter disclosed in this document.The Detailed Description that follows and the Drawings that are referredto in the Detailed Description will further describe the embodimentsdescribed in the Summary as well as other embodiments. Accordingly, tounderstand all the embodiments described by this document, a full reviewof the Summary, Detailed Description and the Drawings is needed.Moreover, the claimed subject matters are not to be limited by theillustrative details in the Summary, Detailed Description and theDrawings, but rather are to be defined by the appended claims, becausethe claimed subject matters can be embodied in other specific formswithout departing from the spirit of the subject matters.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features of the invention are set forth in the appendedclaims. However, for purposes of explanation, several embodiments of theinvention are set forth in the following figures.

FIG. 1 conceptually illustrates a novel unified multi-slider control forediting images in a media editing application of some embodiments.

FIG. 2 illustrates a direct association between two sliders of themulti-slider control.

FIG. 3 illustrates an inverse association between two sliders of themulti-slider control.

FIG. 4 conceptually illustrates a graphical user interface (GUI) of themedia editing application with a multi-slider exposure tool of someembodiments.

FIG. 5 conceptually illustrates the selection of the multi-sliderexposure tool in the GUI for editing an image selected in the GUI.

FIG. 6 conceptually illustrates three example initial sliderconfigurations of the sliders of the multi-slider exposure tool forthree different images.

FIG. 7 conceptually illustrates a single slider operation of themulti-slider exposure tool for changing the black level of an image insome embodiments.

FIG. 8 conceptually illustrates another single slider operation of themulti-slider exposure tool for changing the white level of an image insome embodiments.

FIG. 9 conceptually illustrates another single slider operation of themulti-slider exposure tool for changing the overall brightness of animage in some embodiments.

FIG. 10 conceptually illustrates another single slider operation of themulti-slider exposure tool for changing the contrast of an image in someembodiments.

FIG. 11 conceptually illustrates slider movements of the multi-sliderexposure tool that result in clipping in some embodiments.

FIG. 12 conceptually illustrates slider movements of a dual operationslider knob for expanding the tonal range of the image and liftingshadows of dark regions of the image in some embodiments.

FIG. 13 conceptually illustrates slider movements of another dualoperation slider knob for expanding the tonal range of the image andreducing highlights of light regions of the image in some embodiments.

FIG. 14 conceptually illustrates slider movements of the multi-sliderexposure tool that fix the black and white cutoffs for adjusting animage in some embodiments.

FIG. 15 conceptually illustrates an on-image exposure control forindirectly manipulating the multi-slider exposure tool of someembodiments.

FIG. 16 conceptually illustrates a GUI of a smart phone having aselective slider exposure tool in some embodiments.

FIG. 17 illustrates a software architecture block diagram of themulti-slider exposure tool of some embodiments.

FIG. 18 conceptually illustrates a process that the media editingapplication of some embodiments performs to display the multi-sliderexposure tool for an image.

FIG. 19 conceptually illustrates a process of some embodiments forchanging the appearance of an image by modifying one or more sliders ofthe multi-slider exposure tool.

FIG. 20 illustrates a detailed view of a GUI of some embodiments forviewing, editing, and organizing images.

FIG. 21 conceptually illustrates a data structure for an image as storedby the application of some embodiments.

FIG. 22 illustrates an example of a mobile computing devicearchitecture.

FIG. 23 conceptually illustrates another example of an electronic systemwith which some embodiments are implemented.

DETAILED DESCRIPTION

In the following detailed description of the invention, numerousdetails, examples, and embodiments of the invention are set forth anddescribed. However, it will be clear and apparent to one skilled in theart that the invention is not limited to the embodiments set forth andthat the invention may be practiced without some of the specific detailsand examples discussed.

FIG. 1 conceptually illustrates a graphical user interface (GUI) 100 ofa media editing application of some embodiments. This applicationincludes a novel unified multi-slider control for editing images. FIG. 1illustrates this novel control in terms of four stages (110-140) ofoperation of the GUI 100. Each stage of operation corresponds to adifferent set of positions of the sliders in the multi-slider control.

As shown in this figure, the GUI 100 has a preview display area 170 anda unified slider control 180, which in turn includes a track 155 andthree slider icons 185-195. The preview display area 170 is an area thatdisplays an image for a user to view and edit. In this example, thepreview display area 170 displays an image of a man.

The unified slider control 180 is a tool that allows a user to modifydifferent properties (e.g., color saturation, contrast, etc.) of theimage. As mentioned above, this control 180 includes the track 155 alongwhich multiple slider icons (also called sliders) are movable. Eachslider is associated with a property of the image (e.g., a color ortonal attribute of the image). A position of the slider on the track 155corresponds to a value of the property associated with the slider. Thesesliders may provide a visual indication to the user while the user movesthe sliders along the track 155.

For each slider, the track 155 specifies a range of values associatedwith the property of the image. The specified ranges of values for twoor more sliders may coincide in some embodiments. Alternatively, orconjunctively, the specified ranges of values for two or more slidersmay differ in some embodiments. For instance, a range of values for acolor saturation property of an image may be defined so that each valuein the range specifies a different amount of color saturation for theimage. Also, in some embodiments, different types of ranges may bespecified for different sliders along the track 155. For example, therange of values can be defined as a set of continuous integers (such as0 to 255, −127 to 128, 500-600, etc.), as a set of continuous decimalvalues (−1.0 to 1.0), or as a set of logarithmic or other non-linearvalues. Moreover, the number of values may be different for differentranges that are defined along the track.

One position on the slider track 155 is associated with multiple valuesfor multiple sliders that relate to multiple properties of the image.For example, a first position of the slider track may be associated witha contrast value of 50 and a saturation value of 75, while a differentsecond position of the slider track may be associated with a contrastvalue of 60 and a saturation value of 100.

In some embodiments, the sliders 185-195 are individually movable alongthe slider track in order to allow the user to change propertiesassociated with the sliders 185-195. For instance, the user can change aproperty of the image by moving the slider 185 and change another imageproperty by moving the slider 195 along the track 155. The sliders185-195 may occupy the same position in the slider control 180 in someembodiments. As each slider 185-195 may be associated with a differentproperty, different operations may be performed to change the overallappearance of the image by moving different sliders 185-195. By usingthe unified slider control 180 in this manner, the user may adjust theappearance of the image by changing several different properties of theimage. Different sets of properties are associated with the sliders ofthe multi-slider control in different embodiments.

The operation of the GUI 100 will now be described in terms of the fourstages (110-140). The first stage 110 shows the GUI 100 with an imagedisplayed in the preview display area 170, and the three sliders 185-195spread along the track 155. This stage also shows that a user hasselected the slider 185. In the example illustrated in FIG. 1, and inother figures below, the media editing application is displayed on atouch sensitive screen, and the user interacts with this applicationthrough touch based inputs. Accordingly, in this example, the userselects the slider by touching the location of the slider on thedisplay. The selected slider 185 appears darker than the unselectedsliders 190 and 195 in this example to indicate the selection.

The second stage 120 shows the user's movement (i.e., by dragging) ofthe slider 185 along the track 155 from its old position (i.e., dashedcircle 1 on the far left of the track) to a new position on the track.Also, this stage shows a change in the appearance of the displayed imagein the preview display area 170. In this example, the slider 185 isassumed to be a skin tone saturation slider that increases or decreasesthe saturation of skin tones that the application automatically detects.Accordingly, in this example, the movement of the slider 185 in thesecond stage 120 has increased the skin tone saturation value that isexpressed by the slider 185. This increased value has, in turn, directedthe application to increase the saturation of the man's face and neck,as this application has automatically detected these locations as havingskin tone colors. However, as the application does not detect skin tonecolors in other areas of the displayed image, it does not change anyother colors outside of the man's face and neck.

The third stage 130 shows the user's selection of the slider 195. Again,the user has selected this slider by touching the displayed location ofthis slider on the device, and this selection is reflected by thedarkened appearance of the slider 195. Between the second and thirdstages 120 and 130, the appearance of the image is maintained becausenone of the sliders 185-195 have been repositioned between these twostages.

The fourth stage 140 shows the movement of the slider 195 along thetrack 155. Specifically, the user moves the slider 195 from its oldposition (i.e., dashed circle 3 on the far right of the track) to a newposition of the track. As in the second stage 120, the appearance of theimage changes at the fourth stage 140. In this example, the slider 195is assumed to represent the white cutoff value that corresponds to thelocation of the brightest pixel of the image in a brightness histogramof the image. Movement of this slider to the left has the effect ofdarkening some of the brightest pixels in the image. Accordingly, inthis example, the leftward movement of the slider 195 in the fourthstage 140 decreases the white cutoff value, which in turn directs theapplication to darken the brightest pixels in this image. In thisexample, it is assumed that the brightest pixels are the pixels thatreside in the man's shirt. Hence, darkening these pixels results in thedarkening of the man's shirt.

FIG. 1 illustrates the sliders 185-195 as circles. However, differentembodiments present sliders differently. Sliders can be presented usingany number of different visual presentations (e.g., dots, squares,thumbnails, different shapes, colors, text, etc.). In some embodiments,the sliders are all displayed using the same visual presentation. Inother embodiments, the sliders are displayed differently based on theoperations associated with the sliders. That is, sliders associated withthe same operation may be displayed using the same visual presentationand sliders associated with different operations may be displayed usingdifferent visual presentations.

The slider movements illustrated in FIG. 1 are single, individual slidermovements along the unified slider control's track 155. In someembodiments, when the user moves a slider along the unified slidercontrol's track, one or more other sliders also move along the track. Insome embodiments, two or more sliders of the unified slider control 180are movably linked based on a relationship between the sliders. Theassociation between two sliders can be a direct association in whichmovement by a first slider in a particular direction causes movement ofa second slider in the same direction, or inversely linked in whichmovement by the first slider in a particular direction causes movementof the second slider in the opposite direction.

FIGS. 2 and 3 provide examples of such direct and inverse associationbetween two sliders. FIG. 2 illustrates the case where one slider'smovement along the unified track 155 moves another slider in the samedirection on that track. The GUI 200 illustrated in FIG. 2 is similar tothe GUI 100 in that it has an image viewing area 270 and a unifiedslider control 280 with three sliders 285-295 that slide along a commontrack 255. The operation of the GUI 200 is described in four stages210-240.

In the example illustrated in FIG. 2, the first stage 210 shows the GUI200 with an image displayed in the image viewing area 270, and the threesliders 285-295 spread along the track of the unified slider control280. The second stage 220 shows a user selecting (by touching) theslider 285. In this stage, the appearance of the image in the imageviewing area 270 is the same as the appearance of the image in the firststage 210, as the position of the three sliders is the same in bothstages.

The third stage 230 shows the user moving (e.g., dragging) the slider285 along the unified slider track 255 from its old position (i.e.,dashed circle 1 on the far left of the track) to a new position. Thisstage also shows that the movement of the slider 285 causes the mediaediting application to automatically move slider 290 along the track 255in the same direction as the slider 285. As illustrated, the distancethat the slider 290 has automatically moved is not the same as thedistance that the user moved the slider 285. Instead, the slider 290 ismoved a shorter distance to a position that is equidistant between thesliders 285 and 295. However, one of ordinary skill will realize thatthis distance can vary (e.g., the same distance) in other examples oftwo or more sliders that are associated to move together.

The third stage 230 further illustrates a change in the appearance ofthe image. In this example, it is assumed that the slider 285 relates tothe black cutoff value that corresponds to the location of the darkestpixel of the image in a brightness histogram of the image. It is alsoassumed that slider 290 relates to the overall brightness of the image.Changing the black cutoff value by moving the slider 285 to the right,in this example, has the effect of brightening all the pixels in theimage. However, the overall brightness value has not changed byautomatically moving the slider 290. Instead, only the slider icon 290is moved to maintain the equidistant spacing between the sliders 285 and295. Once the slider 290 is repositioned, it is associated with the newoverall brightness of the image. In other embodiments, however, there isa relationship between the sliders, such that movement of the slider 285causes slider 290 to move, but also causes slider 290 to change theoverall brightness of the image. In other words, instead of the movementof the slider 285 causing the overall brightness to change, theautomatic movement of the slider 290 causes the overall brightness tochange. In this case, the movement of the slider 285 only changes theblack cutoff value, while the automatic movement of the slider 290changes, on its own, the overall brightness of the image.

Accordingly, in this example, the rightward movement of the sliders 185and 190 in the third stage 230 increases the black cutoff value but notthe overall brightness value of the image. This in turn directs theapplication to lighten all the pixels in this image from the standpointof the black cutoff. For example, the darkest pixels may be lightenedmore than the lightest pixels. While subsequent movements of the slider290 by the user would have the effect of brightening the overall imagefrom the standpoint of the overall brightness value, in this case, onlythe slider 290 is repositioned. In this example, it is assumed that thedarkest pixels are the pixels that form the background region behind theman. Hence, brightening these pixels results in the brightening of thisbackground region. The other pixels (i.e., the man in the image) aremidtone pixels in the first stage, which are brightened to lighter tonepixels as a result of the modified black cutoff.

Finally, after the user has deselected the slider 285 at the fourthstage 240, the sliders 285-295 are shown at their final positions on thetrack. As the positions of sliders 285 and 290 in the fourth stage areclose to their positions in the third stage, the displayed image lookspretty much the same in the third and fourth stages. Also, in both ofthese stages, the position of the slider 295 is unchanged because theuser did not manually move slider 295 and the media editing applicationdid not automatically move slider 295 as it does not associate thisslider with either slider 285 or 290.

The slider movements illustrated in FIG. 2 show that movement of aslider along the unified slider control track 255 pushes one or moreother sliders along the track. In some embodiments, when the user movesa slider in a particular direction along the unified slider controltrack, one or more other sliders are automatically pulled along thetrack toward the manually moved slider (e.g., in the opposite directionof the manually moved slider).

FIG. 3 conceptually illustrates an example of this automatic pulling ina GUI 300 that is similar with the GUI 200 of FIG. 2 in that the GUI 300has a unified slider control 380 with three sliders 385-395 that slidealong a common track 355. The operation of the GUI 300 is described infour stages 310-340 that are similar to the four stages 210-240 of FIG.2. The only difference in the operation of the sliders between these twoexamples is that the manual movement of the slider 385 in FIG. 3 causesthe media editing application to pull slider 395 toward the slider 385instead of pushing slider 290 away from slider 285.

In the example illustrated in FIG. 3, the sliders 385 and 395 areassumed to be two conjoined contrast control sliders for adjusting thedark and bright region contrasts. These two contrast control slidersmove in a complementary manner with respect to each other. Manualmovement of either of these sliders toward the other will cause theother to automatically be moved toward the manually moved slider. Manualmovement of either slider away from the other will cause the otherslider to automatically move away from the other slider.

In the second and third stages 320 and 330 of FIG. 3, the slider 385 ismoved toward the slider 395. Hence, in this example, the applicationautomatically moves the slider 395 toward the slider 385. The movementof these sliders toward each other reduces the contrast in the image,which is illustrated by the difference between the versions of the imagethat are displayed in the second and third stages.

Multiple sliders move along a straight track in the embodimentsdescribed above and below. However, in other embodiments, these slidersmove along an angular arc (e.g., along the circumference of a full orpartial circle or elliptical shape). For some of the embodiments inwhich the sliders slide along an angular region, the slider has anappearance of multiple circular dialers that are superimposed on top ofeach other to form one dialer with multiple handles (i.e., multiplesliders). Any one of these handles can be selected to rotate the dialer.In response to movement of any of the handles, the application maymaintain the positions of other handles or may automatically rotate inthe same or opposite directions these one or more other handles.

Several more detailed embodiments are described below. Section Idescribes an implementation of the unified slider control in amulti-slider exposure tool of a media editing application. Section IIdescribes different hardware design implementations of the multi-sliderexposure tool. Next, Section III describes the software architecture ofthe media editing application that uses the multi-slider exposure toolof some embodiments. Lastly, Section IV describes electronic systemsincluding a mobile device and a computer system that implement someembodiments of the invention.

I. Multi-Slider Exposure Tool

In some embodiments, the unified slider control is a multi-sliderexposure tool that can be used to perform tonal adjustment operations onimages in media editing applications, such as image editingapplications, video editing applications, or any other kinds of mediaediting applications. Examples of image editing applications includeApple Final Cut Pro®, Apple Aperture®, Apple iPhoto®, Adobe Photoshop®,Adobe Lightroom®, etc., while examples of video editing applicationsinclude Apple iMovie®, Apple Final Cut Pro®, Apple Motion, etc.

In the examples above and below, the media editing application in someembodiments is a standalone application that executes above theoperating system of a device, while in other embodiments it is part ofthe operating system. Also, in many of the examples above and below(such as those illustrated in FIGS. 4-16), a user interacts with theuser interface (UI) of the media editing application through a touchsensitive screen of the device that displays this UI, which in someembodiments is also the device on which the application executes. One ofordinary skill in the art will realize that in some embodiments, a usercan use cursor controllers or other input devices to interact with theUI and the sliders shown in these examples so long as the devices thatexecute or display the media editing application have such cursorcontrollers or other input mechanisms (e.g., voice control).

A. Media Editing Application

FIG. 4 conceptually illustrates the GUI 400 of a media editingapplication with a multi-slider exposure tool 440 of some embodiments.This exposure tool has multiple sliders that can be slid along one trackfor performing tonal adjustment operations on the image. As shown inFIG. 4, the GUI 400 has a thumbnail display area 410, a preview displayarea 420, and a selectable tools area 430 that includes the multi-sliderexposure tool 440.

The thumbnail display area 410 shows thumbnails of different images in acollection of digital images, such as an album, an event, etc. A usercan scroll through these thumbnails (e.g., through directional touchcontact with this area) and select any one of the thumbnails (e.g., bytouching the location in this area that displays the thumbnail). In someembodiments, selected thumbnails can be moved within the thumbnaildisplay area 410 to change the order of these thumbnails. Also, in someembodiments, selection of a thumbnail in the display area 410 causes thepreview display area 420 to display a higher resolution image (e.g., theactual image, a high-resolution preview of the image, or ahigher-resolution thumbnail image) of the selected thumbnail image. Insome embodiments, the display area 420 displays the higher resolutionimage for a user to view and possibly edit.

The selectable tools area 430 displays several editing tools that a usercan select (e.g., by touching the location in this area that displaysthe tool) to perform editing operations on an image displayed in thepreview display area 420. Examples of such operations include cropping,exposure adjustment, color correction, and a variety of locally orglobally applied drawings or effects. One of the icons in the tools area430 is an exposure icon 432 that represents the multi-slider exposuretool. The selection of the exposure icon 432 (e.g., through touchcontact of the icon 432 as illustrated) directs the application topresent the multi-slider exposure tool 440 below the preview displayarea 420 in some embodiments, as shown in FIG. 4, or over a portion(e.g., a bottom portion) of the image displayed in the preview displayarea 420 in other embodiments.

The multi-slider exposure tool 440 has a track 472 and five slider icons(also called sliders or knobs) that can slide along the track 472 toperform different tonal adjustments (also called exposure adjustments)on the image. The five sliders relate to image attributes thatcorrespond to a brightness histogram for the image. A brightnesshistogram (not shown) is a histogram of a brightness attribute, such asluminance or luma component color value, of the image.

The five sliders include a blackpoint knob 450, a whitepoint knob 470, abrightness knob 460, and a pair of contrast knobs 455 and 465. Asmentioned above, the knobs 450-470 can be moved along the track to makedifferent types of tonal adjustments on the image displayed in the area420. In some embodiments, changes to the displayed image in the previewarea 420 are immediately reflected on the image's thumbnail in thethumbnail display area 410, or alternatively, after a short transientperiod or at the end of the image editing operation.

The blackpoint knob 450 in some embodiments represents the previewedimage's black cutoff value, which is the location of the darkestpixel(s) of this image in the image's brightness histogram. In someembodiments, movement of the blackpoint knob to the right or left hasthe effect of brightening or darkening some of the darkest pixels in theimage. Conversely, the whitepoint knob 470 in some embodimentsrepresents the previewed image's white cutoff value, which is thelocation of the brightest pixel(s) of this image in the image'sbrightness histogram. In some embodiments, movement of the whitepointknob to the left or right has the effect of darkening or brighteningsome of the lightest pixels in the image.

The brightness knob 460 in some embodiments is for adjusting the overallbrightness of the image (e.g., the average brightness value of theimage). The contrast knobs 455 and 465 are a pair of conjoined contrastcontrol sliders for adjusting the contrast in the dark and brightregions of the image's histogram. These two regions in some embodimentsreside respectively between the black cutoff value and the brightnessmedian marker, and the brightness median marker and the white cutoffvalue. In some embodiments, the dark region contrast slider 455 ispositioned between the blackpoint slider 450 and the brightness slider460, while the bright region contrast slider 465 is positioned betweenthe brightness slider 460 and the whitepoint slider 470. Also, in someembodiments, the two contrast control sliders move in a complementarymanner with respect to each other. Manual movement of either of thesesliders toward the other will cause the other to be automatically movedtoward the manually moved slider. Manual movement of either slider awayfrom the other will cause the other slider to automatically move awayfrom the other slider.

For each slider, the track 472 specifies a range of values associatedwith that slider's corresponding image attribute (e.g., with the blackor white cutoff value, with the brightness median, or with the midpointcontrast locations). In some embodiments, the range of values is thesame for all of these sliders as the locations of these sliders aredefined with respect to the same x-axis of the image's brightnesshistogram. The histogram's x-axis may be defined along differentnumerical ranges, such as a range of continuous integers (such as 0 to255, −127 to 128, 500-600, etc.), a range of continuous decimal values(−1.0 to 1.0), a range of logarithmic or other non-linear values, etc.One of ordinary skill will realize that when the sliders related toother image attributes, the range that is defined by the track 472 mightbe different for different sliders.

The multi-slider exposure tool knobs 450-470 are further elaboratedbelow by reference to FIGS. 7 (blackpoint knob), 8 (whitepoint knob), 9(brightness knob), and 10 (contrast knobs). Having generally describedseveral aspects of the media editing application GUI, the next exampledescribes selecting an image with the media editing application andselecting the multi-slider exposure tool to make tonal adjustments tothe image.

FIG. 5 conceptually illustrates selecting the multi-slider exposure tool440 in the GUI 400 of some embodiments. This figure illustrates theselection of the multi-slider exposure tool in the GUI 400 during fourstages (510-540) associated with selecting an image for editing theimage. At the first stage 510, the GUI 400 of the media editingapplication is displayed without any image or tool selected. In someembodiments, the media editing application displays a default image inthe preview display area 420 when no image is selected by a user. Inother embodiments, the media editing application prompts a user of theapplication to select an image to display in the preview display area420.

Next, at the second stage 520, a user selects a thumbnail of an imagefrom the thumbnail display area 410. As shown at this stage, theselected image is displayed in the preview display area 420. In someembodiments, any tool from the set of tools 430 can be selected forperforming media editing operations after an image is selected anddisplayed in the preview display area 420. At the third stage 530, theuser selects the multi-slider exposure tool from the set of tools 430.As illustrated at the third stage 530, the multi-slider exposure tool isdisplayed approximately underneath the preview display area 420.Finally, once the multi-slider exposure tool 440 is displayed, the userselects the brightness knob 460 for making brightness adjustments to theimage displayed in the preview display area 420.

Having generally described the GUI of the media editing application andhow a user selects an image and the multi-slider exposure tool foradjusting the image, the following example describes differentconfigurations of the multi-slider exposure tool for different imageattributes.

B. Dynamically Specifying Different Initial Positions for the Sliders

In some embodiments, the multi-slider exposure tool dynamically definesthe initial positions of its sliders based on the characteristics of thebrightness histogram of the image being displayed in the preview displayarea 420. This is because these positions correspond to specificpositions or regions within this histogram. Accordingly, in someembodiments, the first set of operations that the multi-slider exposuretool performs when it is invoked for a particular image that is beingviewed in the display area 420 include (1) identifying the histogramcharacteristics, (2) based on these characteristics, identifying thepositions of the sliders, and (3) displaying the exposure tool with thesliders at these identified positions.

FIG. 6 conceptually illustrates three different examples of threedifferent initial slider configurations 602, 604, and 606 of the slidersof the exposure tool 440 for three different images 608, 611, and 612,respectively, that have different tonal ranges. This figure shows thethree different initial configurations in three different stages 610,620, and 630. In these stages, this figure not only shows the GUI 400but also shows histograms 680, 685, and 690 alongside the GUI 400 toillustrate the different histogram attributes of the different images.

A brightness histogram represents a set of image values of an image. Insome embodiments, the histogram represents the image by charting animage value for each pixel of the image. For instance, an image having aset of pixels may have a first subset of pixels with a first value, asecond subset of pixels with a second value, and a third subset ofpixels with a third value. The histogram may chart first, second, andthird positions along the X-axis for the first, second, and thirdvalues, respectively. Then, along the Y-axis, the histogram mayillustrate the frequency of the pixels at each position. Based oncharting the image pixel values, a curve is formulated and displayed (orconceptualized) for the histogram. For example, at each of the threex-axis positions, the histogram includes a value along the y-axis torepresent the number (or frequency) of pixels having the correspondingx-axis value.

In some embodiments, the range of different image pixel values that arecharted along the histogram's x-axis represent the tonal range of theimage. In other words, the span of image pixel values between thestarting point and ending point of the histogram represents the tonalrange of the image. In some embodiments, the tonal range is defined overa set of image pixel values that are possible for displaying the imageon the device.

For the histogram, the image pixel values are determined in someembodiments by performing calculations based on one or more pixelcomponent color values. In some embodiments, an RGB sum is performed todetermine the histogram value for a particular pixel. In other words,the brightness histogram is expressed in terms of the sum of the RGBvalues. In other embodiments, the pixel values are received in the RGBspace, converted to a color space that has luminance or luma as one ofthe component color channels (e.g., the YCbCr, YUV, YIQ, etc.), and thebrightness histogram is constructed from the luminance or luma values.Yet other embodiments construct other types of histograms to express thetonal range of the image.

The black and white indicators 670 and 672 of some embodiments provideconvenient markers for identifying the darkest and lightest image pixelvalues of the histogram. Also, the brightness indicator 674 of someembodiments represents the pixel value of the median pixel in thedistribution of pixels of the histogram. In some embodiments, the medianpixel in the distribution of pixels of the histogram is the median pixelof all the pixels of the image sequentially ordered. Furthermore, imagecontrast indicators 676 and 678 suggest tonal differences of the image(e.g., the difference between dark and light areas), which may beevident based on the distribution of values over the histogram 680. Forexample, a histogram having a large portion of image pixel valuesbunched close to the median brightness indicator is likely to be basedon an image having low contrast. On the other hand, a histogram havinglarge numbers of pixel values close to the black and white indicatorsmay indicate an image with high contrast. As another example, imagepixel values that are spread out over the tonal range withoutdisproportionate bunching of values may indicate an image havingbalanced contrast.

In the example illustrated in FIG. 6, the position of the blackpointknob 450 on the multi-slider exposure tool 440 corresponds to the blackindicator 670 of the histogram 680 and the position of the whitepointknob 470 corresponds to the white indicator 672 of the histogram. As thespan between the black and white indicators of the histogram representsthe range of image values of the image, the brightness indicator 674 ofthe histogram 680 represents the pixel value of the median pixel in thedistribution of pixels of the histogram. Unlike the positions of theblackpoint and whitepoint knobs, the position of the brightness knob 460does not necessarily correlate to the brightness indicator 674 of thehistogram. Thus, in some embodiments, the default position of thebrightness knob 460 is the midpoint between the blackpoint knob 450 andthe whitepoint knob 470. On the other hand, in some embodiments, thebrightness knob 460 of the multi-slider exposure tool 440 is notnecessarily positioned equidistant from the blackpoint and whitepointknobs 450 and 470 in the initial configuration of the multi-sliderexposure tool 440 for an image, but rather, is positioned according tothe brightness indicator 674. In these embodiments, the position of thebrightness knob 460 directly correlates to the brightness indicator 674.

Likewise, the positions of the contrast knobs 455 and 465 do notcorrespond to any particular values of the histogram from which imagecontrast can be derived. Instead, the contrast knobs are initiallypositioned, by default, half-way between the brightness knob and anendpoint knob (blackpoint knob or whitepoint knob). Thus, in someembodiments, the default positions of the contrast knobs 455 and 465 aremidpoints between the position of the brightness knob 460 and thepositions of the blackpoint and whitepoint knobs 450 and 470,respectively.

While the positions of the blackpoint and whitepoint knobs 450 and 470,in the example illustrated in FIG. 6, correspond to specific values ofthe histogram, in other embodiments the positions of other knobs or allof the knobs correspond to histogram values.

The first stage 610 of FIG. 6 illustrates the histogram 680 and theinitial slider configuration 602 for a first image 608. This image 608is displayed in the preview display area 420 as its thumbnail image 640has been selected by the user. With this displayed image, the GUI 400also displays the multi-slider exposure tool 440 as this tool wasactivated prior to the selection of the thumbnail 640.

In the first stage 610, the set of knobs 450-470 are approximatelyevenly spaced along the track of the multi-slider exposure tool 440,with the blackpoint knob on the left side of the track, the whitepointknob on the right side of the track, and each contrast knob between thebrightness knob and one of the blackpoint and whitepoint knobs. Thisinitial configuration 602 of the knobs for the multi-slider exposuretool indicates the tonal range of image pixel values of the first image608.

The histogram 680 illustrates the distribution of pixel values of thefirst image 640, and therefore indicates the tonal range (e.g., deepestblack pixel value to brightest white pixel value) and brightness (e.g.median brightness) of the first image 608. To show the relativerelationship between the multi-slider exposure tool 440 and thehistogram 680, several indicators are shown under the histogram, some ofwhich correspond to knobs of the multi-slider exposure tool. For thefirst image 608, all of the indicators under the histogram appear to becorrelated to the knobs. However, in this example, the positionalcorrespondence only relates to some of the indicators and knobs. Inparticular, the black and white indicators 670 and 672 correspond to theblackpoint and whitepoint knobs 450 and 470 of the multi-slider exposuretool and represent the tonal range of the first image 608.

On the other hand, the brightness indicator 674 represents the pixelvalue of the median pixel in the distribution of pixels of the histogramfor the first image 608, but does not correlate to the position of thebrightness knob 460 of the multi-slider exposure tool 440. The contrastindicators 676 and 678 mark positions of the histogram that suggest theamount of contrast for the first image. However, like the brightnessindicator 674, the contrast indicators 676 and 678 do not correspond tothe positions of the contrast knobs 455 and 465 of the multi-sliderexposure tool. In some embodiments, the positions of all the knobs ofthe multi-slider exposure tool 440 correspond to the positions of theindicators.

In the second stage 620, a second thumbnail image 650 is selected by theuser and this thumbnail's image 611 is displayed in the preview displayarea 420 of the GUI 400. Again, the multi-slider exposure tool 440 isdisplayed below the image displayed in the display area. The positionsof the knobs 450-470 in this stage 620 are different from the positionsof the knobs in the first stage, as the two images in these two stageshave different tonal properties. The first image 608 had these knobsspread farther apart to represent the tonal range. The second image 611,on the other hand, is a darker image and consequently has its tonaldistribution shifted to the darker range on the histogram 685. Thisshift is indicated by the multi-slider exposure tool's initial sliderconfiguration 604 in the second stage.

More specifically, the blackpoint knob is positioned at approximatelythe same position as the blackpoint knob shown in the first stage 610for the first image 608. However, in the second stage 620, thewhitepoint knob 470 is closer to the center of the track 472 than in thefirst stage. In absolute terms, the brightness knob 460 is positionedmore to the left in the second stage than in the first stage. However,in relative terms, the brightness knob is equidistant between theblackpoint knob 450 and the whitepoint knob 470, as in the first stage.Likewise, the contrast knobs are positioned farther to the left inabsolute terms compared to the first stage, but are positioned half-waybetween the brightness knob and the blackpoint and whitepoint knobs, asis shown in the first stage.

The histogram 685 illustrates this unequal spacing between theblackpoint and whitepoint knobs for the first and second images 608 and611. Specifically, it shows that the tonal range in the second stage isslightly less than the tonal range in the first stage, as the whitecutoff value has moved to the left. This histogram also shows that thetonal curve in the second stage has shifted to the left (i.e., towarddarker pixels) due to the overall darker appearance of the second image611. This is because the second image 611 has a higher frequency ofpixels near the black cutoff value. Although the distance between theblackpoint knob 450 and the whitepoint knob 470 indicates the tonalrange of the second image 611, the contrast and brightness knobs do notindicate anything about the histogram. For example, the two bumps inthis histogram 685 are indicative of larger contrast in this image, yetthe contrast knobs 455 and 465 are evenly spaced in relation to thebrightness knob 460 and do not bear any positional relationship to theseareas of the histogram. In other embodiments, however, the contrastknobs 455 and 465 are positioned approximately in relation to thecontrast of the dark and light regions of the displayed image.

The third stage 630 illustrates the selection of a third thumbnail image660 by the user and the display of this thumbnail's corresponding image612 in the preview display area 420. Again, the multi-slider exposuretool 440 is displayed below the image displayed in the display area. Thepositions of the knobs 450-470 in this stage 630 are different from thepositions of the knobs in the first and second stages, as the threeimages in these three stages have different tonal properties. The thirdimage 612 is a brighter image and consequently has its tonaldistribution shifted to the brighter range on the histogram 690. Thisshift is indicated by the multi-slider exposure tool's initial sliderconfiguration 606 in the third stage.

More specifically, the blackpoint knob 450 has moved quite a bit to theright to indicate the lack of really dark pixels in this image, and thewhitepoint knob 470 has moved all the way to the right to indicate thehigh value of the white cutoff for this image. As in the first andsecond stages, the brightness knob 460 and the contrast knobs 455 and465 are evenly spaced within the tonal range specified by the blackpointand whitepoint knobs. The histogram 690 illustrates this big shift tothe right and the large number of bright pixels in the image 612. Itshows that the tonal range in the third stage is much less than thetonal ranges in the first and second stages, as most of pixels arepositioned in a much smaller tonal range. It also shows that thedistance between the contrast indicators and the brightness indicator issubstantially less than in either of the first two stages. Thus, thehistogram illustrates that the third image 612 has relatively littlecontrast compared to the first and second images.

While the initial configurations described above in relation to FIG. 6show only the blackpoint and whitepoint knob positions corresponding tothe black and white indicators of the histogram, in other embodiments,all of the knobs correspond to the indicators of the histogram.

C. Single Slider Operations

Having discussed the initial configuration for the set of knobs of themulti-slider exposure tool when different images are selected by theuser, the next several examples describe the individual knob movements.In some embodiments, different operations are performed on an imageselected by a user based on the knob moved along the multi-sliderexposure tool track.

1. Move Blackpoint Knob

FIG. 7 conceptually illustrates a single slider operation of themulti-slider exposure tool 440 for changing the appearance of an imagein some embodiments. This figure illustrates the multi-slider exposuretool 440 during three stages (710-730) associated with moving theblackpoint knob 450 along the track to perform an operation that adjuststhe appearance of an image. In this figure, histograms 718, 728, and 738and tonal response curves 719, 729, and 739 are shown alongside themulti-slider exposure tool 440 during the three stages.

The histograms illustrate the effect of moving different knobs of themulti-slider exposure tool. Several indicators 740-765 are shown alongwith the histograms. These include a blackpoint indicator 740, awhitepoint indicator 760, a brightness indicator, 750, a pair ofcontrast indicators 745 and 755, and an original tonal range pointindicator 765.

The tonal response curves also illustrate the effect of moving differentknobs of the multi-slider exposure tool. Illustrated with each responsecurve 719, 729, and 739 is a black cutoff point 770 and a white cutoffpoint 775. The black and white cutoff points indicate the tonal range ofimage values for the image. The X-axis of the response curve representsinput image pixel values and the Y-axis represents output image pixelvalues. As the response curve illustrates the effect of tonaladjustments (e.g., by moving different knobs) on the image, one skilledin the art would understand that input image pixel values represent thevalues before the user makes the tonal adjustment and the output imagepixel values represent the values after the tonal adjustment iscompleted. Thus, the slope of the response curve illustrates the effectof a tonal adjustment on the image.

Moreover, the slope of the response curve between the black and whitecutoff points indicates how tonal adjustments are applied over the setof pixels of the image. In some embodiments, where there is no change tothe tonal attributes of the image, the response curve is a straight linethat maps all input values to the same output values. Such a responsecurve is shown at a forty-five degree angle with respect to the X-axisand Y-axis. When a user makes tonal adjustments to the image, this curveis reformulated. For example, a blackpoint knob 450 movement thatexpands the tonal range of image pixel values results in a reformulationof the response curve, which repositions the black cutoff point and,thus, modifies the slope of the response curve.

The blackpoint knob 450 in some embodiments is for adjusting thedarkness of the image. When a user moves the blackpoint knob 450 to theleft along the track, the image is darkened (e.g., deeper black). Inparticular, the image has an initial tonal range of pixels from dark tolight. The initial tonal range can be extended by moving the blackpointaway from the center of the multi-slider track in some embodiments.Extending this initial tonal range of image values affects theappearance of the image. For example, by moving the blackpoint knob tothe left along the track, the image may display the darkest pixels ofthe initial tonal range as even darker pixels in the extended tonalrange.

On the other hand, the user can reduce the extended tonal range andbrighten the image by moving the blackpoint knob to any position betweenthe current blackpoint position and the initial blackpoint position onthe multi-slider track, in some embodiments. For example, when the usermoves the blackpoint position between the extended tonal range positionand the initial tonal range position, the image is lightened.

The first stage 710 shows the multi-slider exposure tool 440 with aninitial configuration of knobs associated with a displayed image. Atthis stage, a user selects the blackpoint knob for performing anoperation that adjusts the range of values for the image. The tonalrange of image values is shown between the black and white indicators740 and 760 illustrated in the histogram 718. In addition, the responsecurve 719 is shown with the black and white cutoff points 770 and 775,which correspond to the blackpoint and whitepoint knobs of themulti-slider exposure tool 440.

The second stage 720 shows that the user moves the blackpoint knob tothe left along the multi-slider exposure tool 440 track. This operationhas two effects: (1) the tonal range of the image is expanded and (2)all of the other knobs except the whitepoint knob are pulled along thetrack in response to the blackpoint knob being moved.

This blackpoint knob operation has the effect of expanding the tonalrange of image values for the image. In particular, moving theblackpoint knob to the left linearly deepens the black level of theimage pixels. This linear expansion of black levels for the image isconceptually illustrated in the image displayed at the second stage,which has pixels spread out over different black level tonal ranges. Forexample, different areas of the image roughly fall within a darker tonalsub-range of the image's tonal range (dark region), a middle tonalsub-range (midtone region), and a light tonal sub-range (light region).The operation associated with expanding the tonal range of image valuescauses the dark region to become considerably darker (e.g., themountain), the midtone region to become slightly darker (e.g., the bodyof the car and the ground), and the light region to remain approximatelyas light as before the operation (e.g., the sky behind the mountain).

In this case, the blackpoint indicator 740 of the histogram 728 at thisstage reflects the linear expansion of the tonal range of the image. Inparticular, the movement of the blackpoint indicator 740 along the tonalrange of the histogram 728 corresponds to the movement of the blackpointknob 450 along the track. Another graph view is shown with the responsecurve 729, where movement of the blackpoint knob 450 to the left causesthe black cutoff point 770 shown on the response curve 729 to be movedto a lower Y-axis coordinate position, in accordance with the expandedtonal range of the image.

In addition to expanding the tonal range of the image, the blackpointknob operation has the effect of moving all the other knobs of themulti-slider exposure tool except for the whitepoint knob 470. Thus, inaddition to the blackpoint indicator, the brightness indicator and thetwo contrast indicators are pulled along the tonal range of thehistogram 728 when the blackpoint indicator moves to the left. However,as shown in the histogram 728 and the response curve 729, the whitepointindicator remains unaffected in the same position at the end of thetonal range of the histogram.

At the third stage 730, the user moves the blackpoint knob to the rightalong the track. In this case, the user moves the blackpoint knobapproximately half-way back to the original position of the blackpointknob. The other knobs (except for the whitepoint knob) are pushed alongthe track in response to this movement of the blackpoint knob (similarto being pulled with the blackpoint knob at the second stage). However,unlike the operation at the second stage which expands the tonal range,the operation associated with moving the blackpoint knob to the rightalong the track reduces the tonal range of image values.

As shown in the displayed image at this stage, some areas of the imageare lightened in response to the repositioning of the blackpoint knob.For example, the ground and the body of the car are now white (returningto white as shown at the first stage), the mountain is considerably lessdark than at the second stage, and slightly less dark than at the firststage, and the hubcaps on the car wheels are now white. Thus, thedeepest black level shown at this stage is represented by the mountain,which is considerably lighter than either of the first two stages.

The histogram 738 illustrates the reduced tonal range after theblackpoint indicator is moved right. The dotted curve represents thetonal range and attributes of the image prior to moving the blackpointknob inward, while the solid line represents the tonal range andattributes of the image after the blackpoint knob is moved. Furthermore,the other knobs (except for the whitepoint knob) are moved in responseto the blackpoint repositioning. In the other graph view, the responsecurve 739 shows the black cutoff being moved upward in response to theuser moving the blackpoint knob to the right. This illustrates that thetonal range over which other operations may affect the image is reduced.

Thus, as shown in FIG. 7, moving the blackpoint knob along themulti-slider exposure tool 440 track causes expansion or refraction ofthe tonal range of image pixel values by deepening or raising (e.g.,brightening) the black levels in the image. While the tonal range of theimage is modified by moving the blackpoint knob, as shown in FIG. 7, insome embodiments, moving the whitepoint knob modifies the tonal range ofthe image. In some embodiments, the tonal range of the image pixelvalues are changed based on movements of the whitepoint knob that raise(e.g., increase) or dampen (e.g., decrease) the white levels in theimage.

2. Move Whitepoint Knob

FIG. 8 conceptually illustrates another single slider operation of themulti-slider exposure tool 440 for changing the appearance of an imagein some embodiments. This figures illustrates in three stages (810-830)moving the whitepoint knob 470 along the track of the multi-sliderexposure tool 440 for adjusting the appearance of an image.

The whitepoint knob 470 in some embodiments is for adjusting thelightness of the image. When a user moves the whitepoint knob 470 to theright along the track, the image is brightened (e.g., increased white orlighter). Moreover, moving the whitepoint knob 470 to the right expandsthe tonal range of the image in some embodiments.

The first stage 810 shows the multi-slider exposure tool 440 with aninitial configuration of knobs associated with the displayed image(shadowed car, hubcaps, and ground, white sky, black mountain, etc.). Atthis stage, a user selects the whitepoint knob for performing anoperation that adjusts the tonal range of values for the image. Asmentioned above, this tonal range is represented in the histogram 818 bythe span of image values from the blackpoint indicator 740 to thewhitepoint indicator 760. In addition, the response curve 819 is shownwith black and white cutoff points.

The second stage 820 shows that the user moves the whitepoint knob 470to the right along the multi-slider exposure tool 440 track. As shown,the gray indicator 865 marks the position of the whitepoint knob 470 inthe initial configuration at the first stage. This operation expands thetonal range of the image and pulls all of the other knobs (except forthe blackpoint knob) along the track. As shown, the image now appearsbrighter (the car, hubcaps, and ground are now all white, and themountain is less dark). However, not all regions of the image havechanged by the same amount. For example, the mountain still has someresidual black tones (e.g., the lines representing the deepest blacks ofthe image illustrated at the first stage). This linear effect ondifferent regions is similar to the effect of moving the blackpointknob. Thus, expansion of the tonal range is possible by moving thewhitepoint knob along the multi-slider track to the right.

Furthermore, at this stage, the dotted line of the histogram 828indicates the former distribution of image values over the former tonalrange, while the solid line indicates the tonal range and distributionof values after moving the whitepoint knob to the right. As mentionedabove, the tonal range is increased because the other endpoint knob(i.e., the blackpoint knob) is not moved right at this stage. Therefore,the pixel values are redistributed over a larger tonal range of values.

Moreover, the response curve 829 illustrates the linear expansion of thetonal range, as shown by the white cutoff moving directly up from itsposition at the first stage. In addition, this causes the slope of theresponse curve to increase.

At the third stage 830, the user moves the whitepoint knob 470 to theleft along the track. This movement is about half way back to theoriginal whitepoint position, shown by the gray indicator 865. Thiseffect reduces the expanded tonal range of image values, which isillustrated in the graphs (histogram 838 and response curve 839) at thethird stage. The movement to the left is about half-way back to theoriginal whitepoint position at this stage. In this case, the imageappears slightly darker in some areas (e.g., the hubcaps and themountain). Also, as described above, the other knobs (except for theblackpoint knob) are pushed in along the track in response to thismovement of the whitepoint knob.

Thus, as shown in FIGS. 7 and 8, moving the blackpoint or whitepointknob left or right, respectively, along the multi-slider exposure tool440 track causes expansion of the tonal range of the image.

3. Move Brightness Knob

In some embodiments, the overall brightness of the image pixel valuesare changed by increasing or decreasing the brightness in the image bymodifying the position of the brightness knob. FIG. 9 conceptuallyillustrates another single slider operation of the multi-slider exposuretool 440 for changing the appearance of an image in some embodiments.This figures illustrates, during three stages (910-930), themulti-slider exposure tool 440 similar to that shown in FIG. 7, exceptthat this figure illustrates moving the brightness knob 460 along thetrack for adjusting the overall brightness of the image.

The brightness knob 460 in some embodiments is for adjusting the overallbrightness of the image. The brightness knob 460 moves left and rightalong the track between the blackpoint and white point knobs to adjustbrightness of the image between a tonal range of image brightness fromthe darkest to lightest image areas.

At the first stage 910, a user selects the brightness knob 460 of themulti-slider exposure tool 440 in order to perform an operation thatchanges the overall brightness of the displayed image. As mentionedabove, adjusting brightness of the image by moving the brightness knobof the multi-slider exposure tool does not affect the tonal range ofimage values for the image, but instead, simply modifies pixel valuesover the tonal range. The histogram 918 at this stage shows the tonalrange of the image, and the response curve 919 shows no change (becausemerely selecting the brightness knob does not change any pixel values).

At the second stage 920, the user moves the brightness knob to the rightalong the track of the multi-slider exposure tool. As shown, the imageis lighter at this stage with the car, ground, and mountain appearinglighter.

However, this operation has not changed the tonal range in any way. Thedotted line of the histogram 928 indicates the former distribution ofimage values. However, unlike those illustrated in the previous figures,the tonal range for this operation remains the same (e.g., theblackpoint and whitepoint indicates have not moved). Accordingly, thehistogram 928 illustrates the shift in the brightness of the imagepixels over the curve that is formed between the blackpoint indicatorand the whitepoint indicator. Also, the response curve 929 appearsconvex to show the increased image values resulting from the change inbrightness of the image (without modifying the tonal range).

At the third stage 930, the user moves the brightness knob far along thetrack to the left. This has the effect of reducing the overallbrightness of the image. For example, the body of the car and the groundare now as black as the mountain, and the hubcaps and sky are darkerthan before the user moved the brightness knob left at this stage.

As in the second stage, this operation has not changed the tonal rangeof the image. Although it appears substantially darker, the range ofpixel values remains defined by the blackpoint and whitepoint indicatorsof the histogram 938. Furthermore, the shift in brightness is shown bychange in the curve formed by the distribution of pixel values. Forexample, the former curve (before the user reduces brightness) is shownby the dotted line and the current curve (after the user reducesbrightness) is shown by the solid line. Also, the response curve 939 nowappears concave to show the reduction in brightness values.

4. Move Contrast Knobs

In some embodiments, a user modifies the appearance of the image byadjusting the contrast of the image. FIG. 10 conceptually illustratesanother single slider operation of the multi-slider exposure tool 440for changing the contrast of an image in some embodiments. This figureillustrates, during three stages (1010-1030), the multi-slider exposuretool 440 similar to that shown in FIG. 7. However, this figureillustrates moving the contrast knobs 455 and 465 along the track foradjusting the contrast of the image.

The contrast knobs 455 and 465 in some embodiments are for adjustingimage contrast. In particular, the contrast knob 455 is for increasingor reducing the darkness of areas in the image that are relatively dark,while the contrast knob 465 is for increasing or reducing the lightnessof areas of the image that are relatively light. The contrast knobs 455and 465 move in unison in some embodiments. In other words, when theuser repositions one of the contrast knobs, the other contrast knob isautomatically repositioned by the media editing application. In someembodiments, the automatic movement is in the opposite direction of thecontrast the user moves. In this way, contrast adjustments can bebalanced between dark and light regions.

The first stage 1010 shows the multi-slider exposure tool 440 with aninitial configuration of knobs associated with the displayed image(e.g., having different objects in light, dark, and midtone regions).The histogram 1018 and response curve 1019 shown below the displayedimage and the multi-slider exposure tool 440 are similar to those shownin the previous figures, with a set of indicators that represent thetonal range and attributes of the image. In this case, the contrast inthe image is balanced between the endpoints.

At the second stage 1020 the user selects the dark side contrast knob455. The user at this stage moves the contrast knob 455 along the trackto the left. This operation in some embodiments increases the amount ofcontrast in the dark regions of the image. Furthermore, as shown at thisstage, the other contrast knob (in the light region) is automaticallymoved by the media editing application. In this case, the light contrastknob is moved in the opposite direction (e.g., left) of the darkcontrast knob. In some embodiments, the automatically moved contrastknob moves in the opposite direction in order to balance the contrastadjustment over all regions (light, dark, and midtone). As shown in theimage at this stage, the contrast adjustment results in a starkerappearance (one black cloud and two white clouds, a white car and blacktires, and a white background and black ground).

As shown by the arrows in the histogram 1028 at this stage, the contrastoperation increases the blackness of the pixels in the dark region,decreases the amount of pixels within the midtone range, and increasesthe brightness of the pixels in the light region. In addition, theresponse curve 1029 shown below the histogram further illustrates thecontrast operation on the pixel values of the image. In this example,the image values for pixels in the dark region are reduced (i.e.,darkened), while the image values for pixels in the light region areincreased (i.e., brightened). This effect forms an S-curve.

At the third stage 1030, the user selects the other contrast knob 465(in the light region). The user moves the selected contrast knob 465 tothe left in order to decrease image contrast. This movement, like themovement of the contrast knob 455 at stage two, causes the media editingapplication to automatically move the other contrast knob 465 in theopposite direction. The effect of this movement is shown in theappearance of the image at this stage, with shading of the image in themidtone region (i.e., the car and tires, sky and ground, and the cloudsall being different shades of gray).

This reduction in contrast is represented by the histogram and responsecurve 1038 and 1039. where the pixel values bunch together near themiddle after the user moves the contrast knob, and the S-curve invertingas the result of adjusting a high-contrast image into a low-contrastimage.

Having discussed several different kinds of single knob operations, thenext several examples discuss specific scenarios for the blackpoint andwhitepoint knobs.

D. Special Treatment of Black Cutoff and White Cutoff

In some embodiments, the black cutoff and white cutoff are treateddifferently in relation to the other knobs of the multi-slider exposuretool.

1. Clip Indicators

FIG. 11 conceptually illustrates slider movements of the multi-sliderexposure tool 440 that result in clipping in some embodiments. Thisfigure shows a multi-slider exposure tool similar to that shown in FIG.9. In this figure, however, the multi-slider exposure tool 440 isillustrated during three stages (1110-1130) associated with moving theblackpoint knob beyond a threshold for the image. As shown in thisfigure, the multi-slider exposure tool includes a clipping indicator1140.

As described above in relation to FIG. 6, an image has a tonal range ofimage pixel values, which is indicated by the span between theblackpoint and whitepoint knobs 450 and 470 (or between the black andwhite indicators of the corresponding histogram) for an image displayedin the preview display area 420. In some cases, the tonal range is theinitial visible tonal range of the image. In other words, the image mayhave an initial visible tonal range that is reflected in the positioningof the blackpoint and whitepoint knobs of the multi-slider exposure tool440. For example, the initial configuration of the multi-slider exposuretool for the image displayed in the preview display area 420 at eachstage (610-630) is the initial visible tonal range of the image. In somecases, the initial visible tonal range of the image may be expanded bymoving the blackpoint knob left or the whitepoint knob right along themulti-slider track.

In some embodiments, the image may also have a permissible tonal rangeof values that is the same as or greater than the initially visibletonal range. Thus, the visible tonal range of the image may be asub-range of the permissible tonal range, which spans a greater range ofimage pixel values for displaying the image.

The permissible tonal range of the image, in some embodiments, acts as aconstraint on the operation of the multi-slider exposure tool 440. Inparticular, moving the blackpoint knob 450 (or whitepoint knob 470)beyond the permissible tonal range distorts the image in different(possibly unintended) ways. Distorting the tonal attributes of an imageby making adjustments beyond the permissible tonal range is referred tohere as clipping.

The clipping indicator 1140 is a graphical representation of a limitingvalue (e.g., a threshold) based on the range of permissible image valuesfor an image. In some embodiments, the graphical representation isdisplayed approximately below the multi-slider knob (e.g., theblackpoint knob 450 or the whitepoint knob 470) that is moving beyondthe permissible tonal range of the image. In some embodiments, movingthe blackpoint or whitepoint knob past the permissible range thresholdcauses the clipping indicator 1140 to appear below the knob.

In some embodiments, black and white limits are determined for the imagewhen the image is selected for displaying in the preview display area420. In some embodiments, a data structure that stores the image alsostores a set of metadata related to tonal attributes, including thepermissible tonal range of the image. In some embodiments, the blacklimit represents a limiting value at which no deeper black level isattainable for the image. Expanding the tonal range beyond the blacklimit causes tonal distortion of the image. For example, visible detailsof some areas of the image may get crushed into black (e.g., the detailsare not visible). Likewise, the white limit represents a limiting valueat which no brighter white level is attainable for the image. Expandingthe tonal range beyond the white limit also causes image distortion. Forinstance, visible details of some areas of the image may get washed outto white (e.g., the details are not visible).

The tonal range of permissible image values is determined differentlyfor different images in different scenarios. In some embodiments, theblack and white limits are based on a data format (e.g., RAW, JPEG,etc.) in which an image is captured. Specifically, the black and whitelimits in some embodiments are based on the bit-depth (e.g., 8 bits percolor channel, 12 bits per channel, 14 bits per channel, etc.) of thecaptured image format. For example, an image captured of a particularscene in RAW format (e.g., 12-bit or 14-bit RAW format) may have agreater permissible tonal range of image values than an image capturedof the same particular scene in JPEG format (e.g., 8-bit). The black andwhite limits may also be based on natural visual qualities of the scene(e.g., bright or dim lighting, existence or lack of shadows orhighlights, etc.) being captured. For example, an image of a scene withabundant lighting captured in a particular format may have a greaterpermissible tonal range of image values than an image of a differentscene with limited lighting captured in the same particular format.

The first stage 1110 shows the multi-slider exposure tool 440 with aninitial configuration of knobs associated with a displayed image. Asillustrated, the displayed image has items in different tonal ranges.For example, the ground, the car wheels, and a cloud are within a darkertonal sub-range, while the sky, the body of the car, and some otherclouds are within a lighter region. Furthermore, different details arevisible (e.g., the car wheels and the birds in the sky). For this image,the blackpoint and whitepoint knobs 450 and 470 correspond to theblackpoint and whitepoint of a histogram 1118 representing the tonalrange of image values of the image. As shown at this stage 1110, a blackand white indicators are illustrated subjacent to the histogram 1118 toindicate the relative positions of the blackpoint and whitepoint.

A response curve 1119 is also shown at this stage with black and whitecutoff points, which correspond to the blackpoint and whitepoint knobs450 and 470 of the multi-slider exposure tool 440. The response curvemaps input image values to output image values. Black and white inputmarkers are illustrated subjacent to the response curve 1119 to providea visual indication of a set of input image values for the image. Also,to illustrate the output black value, a black indicator is displayedadjacent to the side of the response curve 1119. For the image displayedat this stage 1110, the input black value (i.e., indicated by the blackinput marker along the X-axis) and output black value (i.e., indicatedby the black output marker along the Y-axis) are determined by theresponse curve 1119. In this case, the user has not adjusted the image(e.g., the user has only selected the blackpoint knob 450 at thisstage). Therefore, the response curve 1119 is equidistant between theX-axis and Y-axis (e.g., 45° angle) to indicate that each input imagevalue is output at the same value. In other words, no change.

The second stage 1120 shows that the user moves the blackpoint knob tothe left along the track of the multi-slider exposure tool 440. Asdescribed above in relation to FIG. 7, this operation expands the tonalrange of image values displayed for the image. In particular, thedisplayed image now appears with several black items (e.g., the ground,the wheels, a cloud, etc.). Other items are slightly darker, and stillother items are white. Furthermore, details are still visible in theimage (e.g., the hubcaps of the wheels and the birds in the sky).

In the histogram 1128 at the second stage 1120, the black indicator isrepositioned to the left. Thus, the tonal range is shown between theblack indicator (now positioned at the origin of the X-axis and Y-axis)and the white indicator (unchanged). To indicate the prior position ofthe black indicator, a gray indicator is shown subjacent to thehistogram 1128. Also, a partially-dashed curve is shown in the histogram1128 to indicate the original curve of the histogram 1118 shown at thefirst stage 1110.

In the response curve 1129, the black input marker is unchanged whilethe black output marker moves down the Y-axis to reflect the leftwardrepositioning of the blackpoint knob along the track. Accordingly, theblack cutoff point moves down in order to reformulate the response curve1129. The original response curve 1119 (e.g., before the user moves theblackpoint knob) is shown as a dashed line at this stage, and theresulting response curve (e.g., after the user moves the blackpointknob) is shown as a solid line. This resulting response curve 1129 has asteeper slope than the slope of the original response curve 1119. Theslope is steeper because the expansion of the image tonal range islinear from the black cutoff point to the white cutoff point.

At the third stage 1130, the user moves the blackpoint knob 450 furtherto the left along the track. However, unlike the operation at the secondstage 1120, which expands the tonal range as the user moves theblackpoint knob to the left, the operation associated with moving theblackpoint knob 450 further to the left along the track does not expandthe tonal range of image values at this stage. Instead, this operationresults in image distortion by crushing details from the pixels madeblack. In this case, the clipping indicator 1140 is displayed below themulti-slider exposure tool 440 to indicate that the movement of theblackpoint knob 450 is beyond the permissible tonal range of imagevalues for the image.

The effect of clipping at this stage is shown by the appearance of theimage, which is considerably darker than in either of the first twostages. This darkening of the image overall did not darken any imageitems that were already black at the second stage. Thus, the ground, thecar wheels, and the black cloud shown at the second stage 1120 are stillthe same level of black in the third stage. The difference now is thatseveral image items are black, including the ground, the wheels, thebody of the car, and the clouds. These items had varying levels ofdarkness in the initial configuration for the image at the first stage,but now all appear with the same level of black. Furthermore, the sky isdark gray at this stage, whereas it was white in both of the first andsecond stages. Also, the details previously visible on the car wheelsand in the sky (e.g., the flying birds) are no longer visible (e.g., dueto distortion of fine image details) at this stage.

As shown in the histogram 1138 at this stage, the black indicator is notrepositioned to the left because the black indicator was already at theorigin before the user moved the blackpoint knob past the tonal rangethreshold. However, the histogram 1138 graph is repositioned as iffurther expansion was possible. Instead, as shown in the third stage,several pixels are repositioned at the lowest X-axis value (e.g.,corresponding to the blackest black in the tonal range of image values).This operation darkens many pixels of varying degrees of darkness to thedarkest black level in the tonal range. For example, the body of the carhad midtone image values at the second stage 1120, but was set to blackat the third stage 1130. Also, the details that were visible on thewheels and in the sky at the first and second stages are not visible inthe third stage.

In the response curve 1139, the black input and output markers areunchanged. However, in response to the user moving the blackpoint knob450 further to the left (i.e., clipping beyond the permissible tonalrange), the response curve 1139, is shown with a first short sectionalong the X-axis, and a reformulated slope to the whitepoint cutoff. Inthis case, the first short section illustrates that several input imagevalues are mapped to the same output image value (i.e., the darkestblack value).

2. Dual Operation Knobs

In some embodiments, multiple different tonal adjustment operations areassociated with a particular knob. Such a knob is referred to here as adual operation knob. In some embodiments, the multi-slider exposure tool440 of FIG. 4 includes multiple dual operation knobs that causedifferent tonal adjustments depending on the direction of movement alongthe track of the multi-slider exposure tool 440.

i. Blackpoint Out and Shadow Recovery in

FIG. 12 conceptually illustrates the effect of different slidermovements of a dual operation knob associated with different operationsin some embodiments. The blackpoint/shadow knob 1250 shown in thisfigure is similar to the blackpoint knob 450 shown in FIG. 11, exceptthat in this figure the blackpoint/shadow knob 1250 is illustratedduring three stages (1210-1230) associated with expanding the tonalrange of the image and lifting shadows of dark tone regions of theimage. In this figure, an initial blackpoint position 1275 is shown forindicating the position of the blackpoint/shadow knob 1250 in theinitial configuration of the multi-slider exposure tool for the image.

As described above in relation to FIGS. 6 and 11, an image has aninitial tonal range that is reflected in the positioning of the knobs ofthe multi-slider exposure tool 440. This initial tonal range may includedifferent tonal sub-ranges (dark, light, and midtone sub-ranges). Thisrange also includes the initial blackpoint position 1275. In someembodiments, the initial tonal range can be expanded by moving theblackpoint knob 450 to the left along the multi-slider track. However,in some embodiments, the initial tonal range cannot be reduced. In otherwords, the initial tonal range of the image is a fixed minimum tonalrange of the image. Thus, the initial positions of the blackpoint andwhitepoint knobs reflect the fixed tonal endpoint values of the minimumtonal range of the image. Therefore, in some embodiments, a dualoperation knob is used in place of the blackpoint knob 450.

The blackpoint/shadow knob 1250 is for performing two different tonaladjustments depending on the position of the knob 1250 in relation tothe initial blackpoint position 1275 and the direction the knob 1250moves along the multi-slider track. In the first case, when theblackpoint/shadow knob 1250 moves outward away from the initialblackpoint position 1275 of the multi-slider track (e.g., moved to theleft from its initial position), the knob 1250 adjusts the darkness ofthe image. In the second case, however, when the blackpoint/shadow knob1250 moves inward past the initial blackpoint position 1275 (e.g., movedto the right from its initial position), the knob 1250 lifts shadows ofthe image. These two cases are further elaborated below, with the firstcase described first and the second case following after.

For the first case, as discussed above by reference to FIG. 7, theinitial tonal range of the image can be extended by moving theblackpoint knob away from the initial blackpoint position 1275 of themulti-slider track in some embodiments. In doing so, the tonal range ofthe image is expanded to include lower image pixel values (e.g., deeperblack appearance) than the lowest pixel values indicated by the initialtonal range.

On the other hand, after the tonal range is expanded theblackpoint/shadow knob 1250 can be moved back along the multi-slidertrack toward the initial blackpoint position 1275. Moving theblackpoint/shadow knob 1250 back in to any position up to the initialblackpoint position 1275 reduces the expanded range. When theblackpoint/shadow knob 1250 reaches the initial blackpoint position1275, assuming no other tonal adjustments have been made when the tonalrange was expanded, the range expansion is eliminated and image pixelvalues are reduced to the initial values in relation to the initialtonal range of the image.

Conversely, for the second case, when the blackpoint/shadow knob 1250 ismoved past the initial blackpoint position 1275 in a direction towardthe center of the multi-slider track (e.g., moved to the right along thetrack), the blackpoint/shadow knob 1250 is for recovering shadows (e.g.,increasing dark pixel values) of the image. In this case, the range isfixed to the initial blackpoint position 1275, despite the apparentreduction in the tonal range. As described below, shadow recovery doesnot reduce the tonal range, but instead raises the image pixel valuesfor a select set of pixels of the image.

In some embodiments, shadow recovery is an operation the media editingapplication performs for selectively lifting dark areas in a shadowregion of the image when the blackpoint/shadow knob 1250 is moved inwardalong the track. The media editing application performs this operation,in some embodiments, by identifying the shadow region of the image andincreasing image pixel values within the shadow region.

The shadow region is defined in different ways in different embodiments.In some embodiments, the shadow region may be predefined for the imagein some embodiments. For instance, the pixels distributed in the darkesthalf or darkest one-third of the tonal range may be defined as theshadow region of the image. Alternatively, the shadow region, in someembodiments, is determined based on weighting factors related to theoverall darkness or lightness of the image. For example, a shadow regionfor a relatively dark image may be defined over a greater number ofpixels than a shadow region for a relatively light image.

In some embodiments, the media editing application increases image pixelvalues uniformly within the shadow region. Alternatively, the mediaediting application of some embodiments increases image pixel valuesproportionally across the shadow region. For example, the values of allthe pixels in the shadow region may be uniformly increased in the shadowregion. In other embodiments, the media editing application increasesimage pixel values non-proportionally within the shadow region. Forexample, the values of darker pixels in the shadow region may beincreased more than the values of lighter pixels in the shadow region.

In some embodiments, the media editing application selects particularareas within the shadow region in which to perform shadow recovery. Forexample, the media editing application may select areas that aredetermined to have sufficient detail when exposed in lighter tonalranges. The media editing application may then enhance the detailswithin these areas by increasing the image pixel values uniformly,proportionally, or non-proportionally. In some embodiments, the mediaediting application uses an image mask to select the areas in the shadowregion. In some cases, the image mask is generated based on userpreference. For example, a user may indicate that shadow recovery shouldnot be performed on a designated area of the image.

The operation of the blackpoint/shadow knob 1250 will now be describedin terms of the three stages (1210-1230). At the first stage 1210, auser selects the blackpoint/shadow knob 1250 of the multi-sliderexposure tool 440. As shown, the image has a tonal range of image valuesfrom white (e.g., the sky, a cloud) to black (e.g., the wheels), withvarying midtone range (e.g., the ground, the car, the other clouds). Thetonal range of image values is represented at this stage by thehistogram 1218 (i.e., between the blackpoint and whitepoint indicators)and the response curve 1219 (i.e., between the black and white cutoffpoints).

At the second stage 1220, the user moves the blackpoint/shadow knob 1250to the left, which deepens the appearance of dark areas of the image.According to the blackpoint/shadow knob 1250 movement by the user, theblack indicator of the histogram 1228 moves left. As shown, thisincreases the tonal range of image values for the image. In addition,the initial blackpoint position 1275 is indicated on the histogram 1228by the gray triangle 1272. This movements of the blackpoint/shadow knob1250 redistributes the pixels of the image within the expanded range. Asshown, the curve over the tonal range appears to be reduced or flattenedout. This reflects a variation in the frequency of pixels (shown alongthe Y-axis) for many of the individual image pixel values. This pixelfrequency variation is the result of the image pixel values beingredistributed along the expanded curve (e.g., more positions to fillwith the same number of pixels).

In the response curve 1229, the repositioned blackpoint/shadow knob 1250is reflected in the movement of the black cutoff point to a lower imagevalue, as shown by the black triangle along the Y-axis of the responsecurve 1229. In some embodiments, moving the black cutoff point downcauses the response curve 1229 to be reformulated. In this case, thereformulated curve (solid line) has a greater slope than the originalresponse curve 1219 (dashed line). Also, the expansion of the tonalrange by changing the black cutoff point is a linear operation thataffects all of the tonal image values of the image.

At the third stage 1230, the user moves the blackpoint/shadow knob 1250to the right along the multi-slider track 440 past the initialblackpoint position at the gray indicator 1272 in order to lift shadowsin the dark region of the image. As described above, this operation isdifferent from an operation that deepens the black levels of the imageand expands the tonal range of the image. In some embodiments, as notedabove, a shadow region is determined for performing the shadow liftingoperation. In some cases, the operation selectively recovers details inshadow regions, as described in detail above. This is performed, forexample, by using a mask for dark areas of the image that are determinedto have sufficient detail to display.

As shown in the histogram 1238, the expanded tonal range is reduced whenthe user moves the blackpoint/shadow knob 1250 to the right along themulti-slider track at the third stage 1230. Comparatively, the tonalrange between the initial blackpoint position (gray triangle indicator1272) and the whitepoint indicator is not reduced during this movement.Instead, the media editing application performs shadow recovery withinthe shadow region of the image. As shown in the histogram 1238, thecurve has a flat slope between the initial blackpoint position at thegray indicator 1272 and the position of the black indicator. This spanof the curve constitutes the shadow region. As shown, very few pixels ofthe image are represented in the curve in the shadow region. However,the slope of the curve abruptly increases after the position of theblack indicator (i.e., after the shadow recovery region). Thus, as shownhere, the shadow recovery operation adjusts the histogram 1238 withoutreducing the tonal range of the image.

In addition, the response curve 1239 at the third stage 1230 shows thatshadow recovery is a non-linear operation. In particular, the curveredistributes the pixels of the image differently based on the inputvalue of the pixel. For instance, each of a relatively small sub-rangeof input pixel values starting at the X-axis position of the blackindicator to quickly-increasing (e.g., the steep increase in the curve)output pixel values. The curve then maps several more input pixel valuesto output pixel values over the shadow region. Finally, the curve mapsthe input values of the remaining pixels to the same values as theoutput pixel values (i.e., the response curve 1239 converged with theinitial curve). In other words, beyond the shadow region there is nodifference between a pixel's input value and its output value.

ii. White Out and Highlight in

FIG. 13 conceptually illustrates the effect of different slidermovements of a dual operation knob associated with different operationsin some embodiments. The whitepoint/highlight knob 1350 shown in thisfigure is similar to the blackpoint/shadow knob 1250 shown in FIG. 12,except that in this figure the whitepoint/highlight knob 1350 isillustrated during three stages (1310-1330) associated with expandingthe tonal range of the image from the lighter region of the tonal rangeand attenuating highlights in light regions of the image. In thisfigure, an initial whitepoint position 1375 is shown for indicating theposition of the whitepoint/highlight knob 1350 in the initialconfiguration of the multi-slider exposure tool 440 for the image.

As described above, an image has an initial tonal range that includesthe initial whitepoint position 1375. In some embodiments, the initialtonal range can be expanded by moving the whitepoint/highlight knob 1350to the right along the multi-slider track. In a manner similar to shadowrecovery, highlight attenuation of some embodiments is also possible byusing another dual operation knob in place of the whitepoint knob 470.Like the blackpoint/shadow knob 1250, the whitepoint/highlight knob 1350is for performing two different tonal adjustments depending on itsposition and the direction of movement. That is, moving thewhitepoint/highlight knob 1350 to the right increases the tonal range ofthe image, but moving the whitepoint/highlight knob 1350 to the leftattenuates highlights of the image (but the tonal range is not reduced).

In some embodiments, highlight attenuation is an operation the mediaediting application performs for tempering or reducing particularlydistinctive bright areas of an image relative to surrounding areas ofthe image (e.g., the glare reflected off a car window or the sheen of aperson's forehead). The media editing application performs thisoperation, in some embodiments, when the whitepoint/highlight knob 1350moves left past the initial whitepoint position 1375 along themulti-slider track.

Like the shadow region, the highlight region provides the sub-rangeregion over which the highlight reduction operation is performed by themedia editing application. The operation of the whitepoint/highlightknob 1350 will now be described in terms of the three stages(1310-1330).

At the first stage 1310, a user selects the whitepoint/highlight knob1350 of the multi-slider exposure tool 440. Like the image shown at thefirst stage of FIG. 12, the tonal range of image values of the image isshown by the histogram 1318 and the response curve 1319.

At the second stage 1320, the user moves the whitepoint/highlight knob1350 to the right, which expands the tonal range of the image. Thewhitepoint indicator of the histogram 1328 also moves right based on thewhitepoint/highlight knob 1350 movement. While the leftward movement ofthe blackpoint/shadow knob 1250 increased the tonal range of the imagefrom the dark region of the image, the rightward movement of thewhitepoint/highlight knob 1350 in this figure increases the tonal rangefrom the light region of the image.

The histogram 1328 and response curve 1329 at this stage are similar tothe histogram 1228 and response curve 1229 shown in the second stage ofFIG. 12. However, instead of extending the tonal range in the histogramby moving the blackpoint indicator, in this case the whitepointindicator is moved right. Furthermore, the response curve reformulatesthe curve such that the adjustment is performed in the whitest regiondown to the black cutoff point.

At the third stage 1330, the user moves the whitepoint/highlight knob1350 to the left along the track. This movement has the effect ofreducing the tonal range back to the initial tonal range of the image.However, like in FIG. 12, this reduction in tonal range is limited.Beyond the initial whitepoint position 1375, the media editingapplication performs highlight attenuation or reduction. For example, animage of a car may have glare from the sun reflecting off a window. Whenthe tonal range is expanded, all of the pixel values over the imageincrease linearly. When the user moves the whitepoint/highlight knob1350 back (i.e., left), all of the pixel values over the image decreaselinearly with the movement. However, as the whitepoint/highlight knob1350 moves past the initial whitepoint position 1375, the media editingapplication selectively reduces highlights of the image. In this case,the glare reflecting off the car window may be reduced, while theoverall brightness of other areas of the car does not decrease. As notedabove, the media editing application may use a mask to selectivelyreduce highlights in the highlight region of the image.

As in the second stage 1320, the histogram 1338 and response curve 1339at this stage 1330 are similar to the histogram 1238 and response curve1239 shown in the third stage 1230 of FIG. 12. However, instead ofreducing the tonal range down to the initial tonal range of the image,and then lifting shadows in the image, in this case thewhitepoint/highlight knob 1350 is moved left to initially reduce theexpanded tonal range back to the initial tonal range of the image, andthen to selectively reduce highlights in the highlight region of theimage.

Having discussed special treatment cases of the black and white cutoffs,the next example describes the effect of multiple slider knob movementswhen the shadows are lifted in the image by moving the knob 450 to theright along the track.

3. Fixed Black and White Cutoffs

FIG. 14 conceptually illustrates slider movements of the multi-sliderexposure tool 440 that fix the black and white cutoffs for adjusting animage in some embodiments. This figure illustrates, during four stages(1410-1440), that when the user moves the blackpoint/shadow knob 1250 tothe right to lift shadows, the black cutoff point is fixed, such thatsubsequent tonal adjustments to the image are persisted when theblackpoint/shadow knob 1250 is moved back to its initial position in theinitial tonal range of the image.

As described above, the blackpoint/shadow knob 1250 is a dual operationknob for performing tonal range expansion and shadow recoveryoperations. While the description of this figure relates to theblackpoint/shadow knob 1250, the points illustrated in the descriptionof this figure similarly relate to other dual operation knobs, such asthe whitepoint/highlight knob 1350 described above.

The first stage 1410 shows the multi-slider exposure tool 440 with aninitial configuration of knobs associated with a displayed image. Asshown, the tonal range of image values covers dark tones (e.g., themountain), midtones (e.g., the car and the ground), and light tones(e.g., the wheels and the sky). The initial configuration corresponds tothe tonal range of image values for this image, which is illustrated inthe histogram 1450. Also, the black and white cutoff points reflect thisinitial configuration and are illustrated in the response curve 1455. Atthis stage, a user selects the blackpoint knob 1250 for adjusting theblack cutoff point of the image.

At the second stage 1420, the user moves the blackpoint/shadow knob 1250to the right, which performs a shadow recovery operation in a shadowregion of the image (similar to the shadow recovery performed in FIG.12). In addition, as the user moves the blackpoint/shadow knob 1250along the multi-slider track, the contrast and brightness knobs areautomatically moved (e.g., pushed) along the track by the media editingapplication.

In the histogram 1452, the blackpoint indicator 1442 and brightnessindicator 1444 reflect the relative positioning of the knobs on themulti-slider exposure tool. However, the initial black indicator 1446(i.e., gray triangle subjacent to the histogram 1452) is not moveddespite the blackpoint/shadow knob 1250 repositioning because in ashadow recovery operation, the initial tonal range of the image does notcontract. Therefore, the tonal range shown in the histogram 1452 is notreduced, but instead represents very few pixels of the histogram 1452between the initial black indicator 1446 and the repositioned blackindicator 1442 (e.g., the curve is nearly floored between the initialand repositioned black indicators 1446 and 1442).

Also, the black cutoff point remains positioned at the initial cutoffposition despite the blackpoint/shadow knob 1250 movement along themulti-slider track to the right. The response curve 1457 reflects theshadow recovery operation in terms of the bulging out of the curve.

At the third stage 1430, the user selects and moves the brightness knob460 to the right along the multi-slider track in order to increase theoverall level of brightness in the image. As a massive proportion of theimage pixel values currently fall between the black indicator 1442 andthe white indicator 1448 (despite not having reduced the initial tonalrange of the image), the brightness operation largely affects pixels inthis tonal sub-range. Thus, as shown at this stage 1430, the imageappears very light, with the mountain, car, wheels, ground, and sky allappearing white. The relatively few pixel represented in the shadowregion of the histogram 1460 are also affected by the brightnessoperation. However, the effect of the brightness adjustment on thesepixels has minimal impact on the present appearance of the image and onsubsequent tonal adjustments of the image.

The user's movement of the brightness knob is reflected in the histogram1460, where the brightness indicator 1444 moves to the right inaccordance with the movement of the brightness knob 460. This causes thehistogram 1452 to shift rightward, so that more pixels are associatedwith brighter image pixel values, as shown in the resulting histogram1460.

The response curve 1465 also shows the increased level of brightness bythe convex portion bulging out of the curve. Although all of the imagepixel values are brightened by this operation, the effect of moving thebrightness knob 460 is shown to largely affect the massive proportion ofpixels that are not in the shadow region, while the relatively fewpixels within the shadow region are barely affected by the brightnessoperation. Therefore, tonal adjustments a user makes to the image afterperforming a shadow recovery operation encompasses all of the pixels ofthe image, but has particularly strong effect on non-shadow regions. Astonal adjustments performed after shadow recovery are persistent, thisapplication of the brightness operation disproportionately affects onetonal sub-region at the expense of another tonal sub-region.

At the fourth stage 1440, the user selects and moves theblackpoint/shadow knob 1250 back to the initial blackpoint position itoccupied at the first stage 1410. For this operation, the media editingapplication performs shadow casting (e.g., the shadows lifted at thesecond stage 1420 are cast out or lowered again). The media editingapplication also moves the contrast and brightness knobs to the leftalong the multi-slider track.

At this stage 1440, however, the image appears lighter than the image atthe first stage 1410. For example, the image at the first stage 1410shows that the mountain is black and the ground, the car, and the wheelsare all approximately in the same midtone region, whereas the image atthe fourth stage 1440 shows that the mountain is shaded, the ground iswhite, and the wheels and car appear lighter than in the first stage1410. In this case, the change in brightness made at the third stage1430 remains in effect as the user moves the blackpoint/shadow knob 1250back to the initial position shown at the first stage 1410 (i.e., asindicated by the gray position indicator 1446). In other words, thebrightness adjustment made at the third stage 1430 gets stretched out asif the tonal range was being expanded, despite the tonal range remainingthe same (i.e., the tonal range is maintained and only the shadows arerecast at this stage 1440).

This stretching effect of the brightness adjustment is illustrated inthe histogram 1470. As shown, the histogram 1470 is a solid line andrepresents the distribution of image values after the user moves theblackpoint/shadow knob 1250 to the left during the fourth stage 1440.The two dashed lines 1450 and 1460 represent the histograms for theimage at previous different stages. Specifically, the dashed line 1460represents the histogram curve at the third stage 1430 and the dashedline 1450 represents the original histogram curve shown at the firststage 1410. As shown, the dashed line 1450 representing the originalhistogram has a greater distribution of pixel values for darker imagevalues compared to the histogram 1470 (solid line) at this stage 1440.This is also shown in the response curve 1475 at the fourth stage 1440,with the original response curve 1455, the response curve 1465 at thethird stage 1430, and the present response curve 1475 at the fourthstage 1440.

Thus, the fixed black and white cutoff points effectively limit thescope of tonal adjustments to be within high pixel distribution regionsof the histogram. At the same time, such tonal adjustments are persistedwhen a user moves the blackpoint/shadow knob 1250 back toward theinitial position.

Having discussed special treatment cases of the black and white cutoffs,the next example describes a different feature of the multi-sliderexposure tool used in conjunction with a context-sensitive on-screencontrol of some embodiments.

E. Tonal Adjustments by Indirect Manipulation of the Knobs

FIGS. 7, 8, 9, 10, 11, 14, 12, and 13 described above, illustrateseveral examples of moving the knobs of the multi-slider exposure toolto adjust tonal attributes of images. In those examples, themulti-slider exposure tool is directly manipulated by the user'sselection and movement of the knobs. However, in some embodiments, auser can adjust tonal attributes of the image by indirectly manipulatingthe multi-slider exposure tool. This example describes using a userinterface (UI) control that is overlaid upon the image (also referred toas an on-image control) for indirect manipulation of the multi-sliderexposure tool.

FIG. 15 conceptually illustrates an on-image exposure control 1550 forindirectly manipulating the multi-slider exposure tool of someembodiments. Specifically, in three stages (1510-1530), this figurepresents a GUI of a media editing application that is similar to the GUIshown in FIG. 12. However, this figure illustrates that the knobs of themulti-slider exposure tool are highlighted and moved in response to auser's manipulation of the on-image exposure control. Such an on-imagecontrol 1550 is shown in FIG. 15.

The first stage 1510 shows the multi-slider exposure tool 440 with theset of knobs 1250, 455, 460, 465, and 1350 positioned according to thetonal attributes of the displayed image. As shown at this stage, a userselects a location within the image. In some embodiments, the userselects the location by performing a gesture, such as tapping ortouching a touch-responsive display device. In other embodiments, othergestures are performed for selecting the location. In this example, theuser selects the car shown in the image. The car appears gray in thisimage, and thus, the pixel values for the car are in the midtone region.

At the second stage 1520, the media editing application overlays theon-image exposure control 1550 at the user's selected location. Theon-image control 1550 is illustrated with four directional arrows, eachof which indicates a tonal adjustment operation to apply to the image.In some embodiments, different visual characteristics of the on-imagecontrol indicate the types of tonal adjustment operations to apply to animage. While the on-image control 1550 shown in this example appearsopaque (e.g., portions of the image are not visible where the on-imagecontrol overlays the image), in some embodiments, the on-image control1550 appears translucent or nearly transparent, so as not to obscure thedisplay of the image.

In some embodiments, the tonal adjustment operations associated with theon-image control 1550 depend on the image pixel values at the selectedlocation. For example, different operations may be provided when theselected location has pixels in dark, bright, or midtone regions of theimage. In this example, the selected location is in the midtone region(i.e., gray pixels of the car), and may be associated with operationsthat account for midtone image characteristics. As described below, themedia editing application of some embodiments provides different tonaladjustment operations for different tonal ranges of pixel values.

At this stage 1520, the media editing application determines that theselected location has pixels in the midtone region and designatesbrightness and contrast operations for the on-image control.Specifically, the upward pointing arrow is associated with an operationthat increases brightness and the downward pointing arrow is associatedwith an operation that decreases brightness. Also, the horizontal arrowsare associated with an operation that adjusts contrast of the image.

In some embodiments, the media editing application highlights the knobs(i.e., brightness knob 460 and contrast knobs 455 and 465) of themulti-slider exposure tool 440 that correspond to the designatedoperations of the on-image control 1550. In some of these embodiments,the media editing application highlights the corresponding knobsapproximately simultaneously with designating the operations (i.e.,brightness and contrast) for the on-image exposure control 1550. Asshown at this stage 1520, the brightness knob 460 and the two contrastknobs 455 and 465 are highlighted.

Highlighting the knobs that correspond to the designated operations ofthe on-image control 1550 provides a visual indication of the tonaladjustment operations available to the user of the on-image control. Insome embodiments, the media editing application does not highlight thecorresponding knobs, but instead provides a different visual indicationof the operations designated for the on-image control. For example, thecorresponding knobs may appear with a different size relative to theother knobs of the multi-slider exposure tool (e.g., by increasing thesize of the corresponding knobs or decreasing the size of the otherknobs). In some embodiments, no visual indications are provided for thecorresponding knobs, but instead, the entire multi-slider exposure toolis highlighted or made visually apparent to the user.

The third stage 1530 shows that the user selects (e.g., by dragging afinger or touch apparatus on the touch display device) the operation fordecreasing brightness. The media editing application in some embodimentshides the arrows of the on-image control 1550 that are not selected. Inthis case, only the downward pointing arrow remains visible as the usermoves (e.g., drags touch apparatus or finger) down the arrow to adjustthe image brightness. In response to this selection, the media editingapplication reduces the overall brightness of the image. As shown in theimage, for example, the car is darker gray, the ground is black, and theclouds are varying degrees of gray. In addition to reducing thebrightness of the image, the media editing application moves thebrightness knob 460 to the left along the multi-slider track. Asdescribed above, when the brightness knob is moved, in some embodiments,the media editing application automatically moves the contrast knobs aswell. As shown at this stage 1530, the media editing applicationautomatically moves the contrast knobs 455 and 465 based on therepositioning of the brightness knob 460 (e.g., half-way between therepositioned brightness knob and the proximate endpoint knob).

On-image controls are described in a concurrently filed United StatesNon-Provisional Patent Application 13/629,428, now published as U.S.Patent Publication 2013/0235069, entitled “Context Aware User Interfacefor Image Editing”. The United States Non-Provisional Patent Application13/629,428,now published as U.S. Patent Publication 2013/0235069 isincorporated herein by reference.

Having discussed an example of a user interface (UI) control that isoverlaid upon the image for indirectly manipulating the multi-sliderexposure tool, the next example describes an alternative UIimplementation of the multi-slider exposure tool of some embodiments.

F. Alternative UI Implementation

As many of the features described above illuminate, a multi-sliderexposure tool provides the advantage of saving space by using a singleUI tool for performing several different operations in lieu of usingseveral separate UI tools, each of which is used for a differentoperation. However, some devices do not have enough display space torealize this advantage. Such devices includes, for example, a smartphonesuch as an Apple iPhone®, or a tablet computing device operating inportrait mode, such as an Apple iPad® or Samsung Galaxy®. On thesedevices, overcrowding of the different knobs on the single slider trackmay occur, or the image viewing area may be squeezed or obscured by themulti-slider tool. Such devices may benefit from an alternative UIimplementation of the multi-slider exposure tool.

FIG. 16 conceptually illustrates a GUI of a smart phone having aselective slider exposure tool in some embodiments. In particular, thisfigure illustrates, over three stages (1610-1630) that different imageadjustment icons are individually selectable from an image adjustmenttool display area for adjusting tonal attributes of an image.

The GUI has a thumbnail display area 1640 and a preview display area1650 similar to the thumbnail display area 410 and the preview displayarea 420 shown in FIG. 4, except that the thumbnail display area 1640 ofthis figure is illustrated below the preview display area 1650. A slidertrack 1645 similar to the multi-slider track shown in FIG. 4 issandwiched between the preview display area 1650 and the thumbnaildisplay area 1640. In some embodiments, the slider track 1645 overlaysthe thumbnail display area 1640. In some of these embodiments, theslider track 1645 appears sufficiently translucent so that a user canview thumbnail images in the thumbnail display area 1640. The GUI ofthis figure also has an exposure adjustment tool bar 1660 with threeselectable adjustment icons, including a light/dark icon 1665, abrightness icon 1670, and a contrast icon 1675. The GUI also has a setof navigation and mode tools 1680, an image adjustment tool 1685, and animage reset icon 1690. The slider track 1645 and the three selectableadjustment icons (1665-1675) together constitute the selective sliderexposure tool of some embodiments.

The operation of the selective slider exposure tool is described interms of the three stages (1610-1630). At the first stage 1610, the GUIis displayed in media editing mode. As shown, the icon for editing isselected (e.g., highlighted) in the set of mode tools 1680. Also, theediting mode is set for making tonal adjustments to the image. Asillustrated, the image adjustment tool 1685 is selected from theexposure adjustment toolbar 1660. At this stage, the user selects animage from the thumbnail display area 1640, and the selected image isdisplayed in the preview display area 1650.

In some embodiments, the thumbnail display area 1640 is not displayed(e.g., hidden from the display) when the user selects an image in orderto allow the image to be displayed in a larger display space of the GUI.In some of these embodiments, the thumbnail display area 1640 is hiddenfrom the display until the user selects (e.g., by tapping) the image tobe closed or minimized. In other embodiments, the image is displayedover the thumbnail display area 1640, but appears sufficientlytranslucent so that the user may view thumbnails shown in the thumbnaildisplay area 1640 while the image is displayed.

At the second stage 1620, the user selects the light/dark icon formaking tonal adjustments to the light and dark regions of the selectedimage. In some embodiments, the selection of any of the icons for makingtonal adjustments is made with an on-image control such as the on-imagecontrol described above in relation to FIG. 15. In some of theseembodiments, the exposure adjustment toolbar 1660 is not displayed.

In response to the user's selection of the light/dark icon 1665 from theexposure adjustment toolbar 1660, the GUI displays individually movabledark and light knobs on the slider track 1645. The dark and light knobsshown at different positions along the track to allow a user toindividually adjust dark regions or light regions with either knobindependently of the other knob. As described above, the positions ofthe knobs reflect the image attributes (e.g., blackpoint, whitepoint,etc.) of the image when the user selects the image for editing. In someembodiments when the on-image control is displayed for selecting theicon, the slider track 1645 is not displayed at all. In theseembodiments, the icon selected by using the on-image control ishighlighted (e.g., illuminated, flashing, etc.) on the exposureadjustment toolbar 1660.

At the third stage 1630, the user selects and moves the dark knob alongthe slider track 1645. The user's movement is to the left along thetrack, which corresponds to an expansion of the tonal range (e.g., theuser is deepening the black level at which image pixels are displayed).Similar to the operation of the multi-slider exposure tool describedabove in relation to FIG. 7, moving the dark icon left causes otherimage attributes to change. In this case, brightness is reduced andcontrast is also adjusted. In some embodiments, the movement (e.g., bythe user dragging a touch apparatus or finger) across the on-imagecontrol determines the operation to apply.

The image in the preview display area 1650 now appears with some areashaving a substantial amount of black and other areas relatively darkerthan the same areas of the image as shown at the second stage 1620. Inaddition, some areas remain light (e.g., the sky and some of theclouds). As described above, the tonal range expansion of the darkestregion may not affect the lightest region. In other words, thewhitepoint remains fixed despite the user's movement of the dark iconand the relative movements of the other icons.

Although the example shown in FIG. 16 illustrates selection andsubsequent display and movement of the light/dark icon 1665, theoperation of the selective slider exposure tool is similar when the userselects other icons. For instance, the user can select the brightnessicon 1670 to adjust the brightness of the displayed image by moving abrightness knob along the slider track 1645.

Additionally, the user's selection of the contrast icon 1675 allows theuser to move a contrast knob along the slider track 1645 to adjust imagecontrast. Unlike the previous examples that illustrated the tandemmovements and operations of two contrast knobs when a user moves eitherone of the two contrast knobs, in some embodiments, the selective sliderexposure tool only provides a single contrast knob for manipulating thecontrast of an image. The operation of the single contrast knob, in someof these embodiments, is similar to the operation of the singlebrightness knob when the user selects the brightness icon 1670 in theselective slider exposure tool.

In this way, the selective slider exposure tool allows a user of adevice with a limited display (e.g., a smartphone, a tablet, etc.) tomake tonal adjustments to images in a manner similar to the operation ofthe multi-slider exposure tool described above.

II. Architecture and Processes

A. Multi-Slider Exposure Tool Architecture

FIG. 17 illustrates a software architecture block diagram of themulti-slider exposure tool of some embodiments. This exposure tool 1700generates and controls the slider track and sliders, and modifies theimages based on the locations of the sliders. As shown in this figure,the tool 1700 includes a slider processor 1725, an initial sliderposition identifier 1720, a slider adjustor 1710, a rules data storage1715, and an image processor 1730.

The slider processor 1725 is the central control module of the tool. Itinteracts with the UI interaction module 1705 to receive input withrespect to the tool (e.g., the opening and closing of the tool) and thesliders (e.g., the movement of the sliders). In response to the UIinput, the slider tool 1700 can interact with (1) an initial sliderposition identifier 1720 to dynamically identify the range of theslider, (2) the slider adjustor 1710 to identify the new location of amanually moved slider and any other sliders that have to beautomatically moved with the manually moved slider, and (3) the imageprocessor 1730 to modify the image based on the positions of thesliders.

The slider tool 1700 can be invoked for an image in different ways insome embodiments. For instance, in some cases, the slider tool 1700 isinvoked after a first image has been selected for display in the previewdisplay area 420. In other cases, before the selection of the firstimage for display, the slider tool 1700 is invoked for a second image.In this case, the slider tool is invoked for the first imageautomatically as it was already selected for the second image.

Irrespective of how it is invoked, the slider tool first calls theinitial slider position identifier 1720 when it is invoked for an image.The slider position identifier 1720 identifies the initial positions ofthe sliders based on an analysis that it performs of the image tonalattributes. This identifier in some embodiments identifies these initialpositions based on a brightness histogram that it generates for theimage. It defines the position of the blackpoint, whitepoint, andbrightness sliders based on the black and white cutoff values of thehistogram and the average brightness value of the histogram. Asmentioned above, the black point cutoff in some embodiments is thehistogram x-axis location corresponding to the darkest pixel in theimage, the white point cutoff in some embodiments is the histogramx-axis location corresponding to the brightest pixel in the image, andthe average brightness value is the median brightness value in theimage. The position identifier 1720 specifies the initial contrastcontrol locations as the locations between the black point cutoff valueand the brightness value, and between the brightness value and the whitepoint cutoff value.

Also, as mentioned above, the identifier 1720 receives the image data interms of RGB Values. In Some of these Embodiments, the IdentifierGenerates the Brightness Histogram by (1) expressing each pixel'sbrightness as the sum of its RGB values, and (2) placing these RGBvalues in a certain number of discrete histogram x-axis buckets thatreduces the number of bits needed to express each x-axis histogramposition. In other embodiments, the identifier converts the RGB valuefor each pixel into a color format that has luma or luminance as one ofits color channels, and then generates the histogram based on thecomputed luma or luminance values. Again, to simplify the histogramrepresentation, the identifier 1720 in some of these embodiments placesthe luma or luminance values in a smaller set of x-axis buckets.

After the initial position identifier 1720 identifies the initial sliderpositions, the slider processor 1725 directs the UI interaction module1705 to present the multiple sliders at their identified initialpositions. When one of these sliders is then moved by a user, the UIinteraction module notifies the slider processor 1725 of this movement.The processor 1725 then directs the slider adjustor 1710 to identify thenew position of the moved slider and the new positions of any othersliders that the tool 1700 has to automatically move based on themovement of the manually adjusted slider.

In some embodiments, the UI input regarding the manually adjusted slideris a directional input (e.g., a drag movement) that has to be convertedinto a positional movement of the slider. In these embodiments, theslider adjustor 1710 computes this positional movement from thedirectional movement and uses this computed value to adjust the manuallymoved slider.

The slider adjuster 1710 also uses the rules that are contained in therules data storage 1715 (e.g., database, data file, data table, etc.) toidentify any other slider that has to be automatically moved inconjunction with the manually adjusted slider. In the embodimentsdescribed above, three examples of such automatically moved slidersinclude (1) the contrast and brightness sliders when the blackpoint orwhitepoint sliders are manually moved, (2) the contrast sliders when thebrightness slider moves, and (3) the opposing contrast slider when aprimary contrast slider moves. In some embodiments, manual movement ofone slider may require automatic movement of one or more other sliders.Also, in some embodiments, automatic movement of one slider may furtherrequire automatic movement of one or more other sliders. For each sliderthat the slider adjuster 1710 identifies as one that it has toautomatically move, the slider adjuster 1710 identifies a new positionbased on the new position of the manually moved slider that itpreviously identified.

Once the slider adjuster 1710 identifies the positions of the sliders inresponse to a user input, the slider processor 1725 directs the imageprocessor 1730 to modify the current version of the image based on theslider positions identified by the slider adjuster 1710. The sliderprocessor 1725 provides the image processor 1730 with (1) the currentversion of the image from the storage 1735 in some embodiments, or (2)the original version of the image along with instructions that captureall previous edit operations that have been performed on the image inother embodiments. This latter approach is used in embodiments thatstore the image data in a non-destructive manner by storing each imagein its original format and storing all editing operations separately. Inyet other embodiments, a lower resolution version of each edited imageis stored in the storage 1735, and this lower resolution version isprovided to the image processor 1725 in order to generate a new editedversion of the image.

Based on these new positions, the image processor 1730 computes a newtonal response curve for the image, and a transform that specifies howto map the previous tonal response curve for the image to the new tonalresponse curve. The image processor 1730 then applies this transform tothe current version of the image to produce a new modified version ofthe image. The slider processor 1725 then directs the UI interactionmodule to display this new modified version of the image on the displayscreen.

The slider processor 1725 also stores in the storage 1735 the newmodified version of the image in some embodiments, or the originalversion of the image along with instructions that capture all previousand current edit operations that have been performed on the image inother embodiments. In some embodiments, a lower resolution version ofthe modified image is stored in the storage at this point. This lowerresolution version is also provided in some cases to the UI interactionmodule 1705 for display on the device's display screen, as theresolution of this screen is often less than the full resolution of theoriginal or edited images.

B. Multi-Slider Exposure Tool Processes

FIG. 18 conceptually illustrates a process 1800 that the media editingapplication of some embodiments performs to display a multi-sliderexposure tool for an image. In some embodiments, part of this process isperformed by the multi-slider exposure tool 1700. This process initiallyreceives (at 1805) a selection of a thumbnail image from an album in thethumbnail display area. The process then displays (1810) the image inthe preview display area.

Next, at 1815, the process receives selection of the multi-sliderexposure tool in the editing tool set. The process then analyzes (at1820) the tonal attributes of the displayed image. Several manners ofanalyzing these attributes (e.g., to generate brightness histograms)were described above in Section II.A. Based on this analysis, theprocess then generates (at 1825) the initial position configuration ofthe sliders, as described above in Section II.A. The process thendirects the UI interaction module to display (at 1830) the multi-slidertool with the identified initial slider configuration.

FIG. 19 conceptually illustrates a process 1900 of some embodiments forchanging the appearance of an image by modifying one or more sliders ofa multi-slider exposure tool. The multi-slider exposure tool 1700performs the process 1900 in some embodiments. Moreover, the process1900 of some embodiments is performed by the multi-slider exposure toolwhen the application has the exposure tool invoked.

The process 1900 begins by determining (at 1905) whether a slider on thetrack of the multi-slider exposure tool is selected. When a slider isselected, the process 1900 proceeds to 1910. However, when no slider isselected, the process 1900 of some embodiments returns to 1905. In someembodiments, the process 1900 continuously evaluates whether any slideron the exposure tool track is selected. For example, the processcontinuously checks (e.g., by detecting selection events associated withthe multi-control slider) the UI interaction module to determine whetherany slider is selected in some embodiments, while in other embodimentsit is notified by this module anytime one of the sliders is adjusted.

Next, the process 1900 identifies (at 1910) the attribute associatedwith the selected slider. For instance, the selected slider may beassociated with the black cutoff value. After identifying the attributeassociated with the slider, the process 1900 determines (at 1915)whether a movement of the slider is detected. If a movement of theslider is not detected, the process 1900 proceeds to 1935, to determinewhether the slider is still selected. Otherwise, if a movement of theslider is detected, the process 1900 proceeds to 1920.

At 1920, the process identifies, based on the detected movement of theslider, a new position for the manually adjusted slider on the slidertrack and a new value for the attribute associated with this manuallyadjusted slider. In some embodiments, the process 1900 continuouslychanges the slider's position contemporaneously with a user'srepositioning (e.g., by a touch gesture for dragging the slider) of theslider across the slider track.

Next, the process 1900 determines (at 1925) whether any other sliders ofthe exposure tool should be moved automatically in relation to thechanged position of the manually moved slider. In some embodiments, therelated sliders to automatically move are specified in a rules storage(e.g., the rules storage 1715). In some of these embodiments, theprocess determines the related sliders to automatically move byreviewing the rules in the rules storage 1715. In some embodiments, therules are stored in a lookup table. In some embodiments, multiple rulesare determined for automatically moving related sliders. For instance,manual movement of a particular slider may require automatic movement ofone or more other sliders. Also, in some embodiments, automatic movementof any slider may require automatic movement of one or more othersliders. Furthermore, the automatic movement of a slider may be in thesame direction or in the opposing direction to the movement of themanually adjusted slider, as described above.

When the process determines (at 1925) that there are not any relatedsliders to move, the process 1900 transitions to 1935 to adjust theposition of the manually moved slider on the track, and then to 1940 todetermine whether the slider is still selected. Otherwise, when theprocess determines (at 1925) that there are related slider(s) that needto be moved, the process 1900 identifies (at 1930) the position of theautomatically adjusted sliders and then adjusts the position of themanually and automatically moved sliders on the slider track. Aftermoving (at 1930) the manually and automatically adjusted sliders, theprocess 1900 proceeds to 1940 to determine whether the manually adjustedslider is still selected.

When the process 1900 determines (at 1940) that this slider is no longerselected (e.g., the user terminates his contact with this slider), theprocess 1900 ends. Otherwise, the process 1900 determines that theslider is still selected for continued processing and transitions backto 1915 for detecting movement. In some embodiments, the process 1900continuously cycles through different combinations of operations 1915through 1940 until the user stops his contact with the slider selectedat 1905.

Although the processes described above are described in a particularorder, different embodiments may perform these processes in a differentorder.

III. Image Viewing, Editing, and Organization Application

The above-described figures illustrated various examples of the GUI ofan image viewing, editing, and organization application of someembodiments. FIG. 20 illustrates a detailed view of a GUI 2000 of someembodiments for viewing, editing, and organizing images. The GUI 2000will be described in part by reference to FIG. 21, which conceptuallyillustrates a data structure 2100 for an image as stored by theapplication of some embodiments.

The data structure 2100 includes an image ID 2105, image data 2110, editinstructions 2115, cached versions 2140 of the image, and any additionaldata 2150 for the image. The image ID 2105 is a unique identifier forthe image, which in some embodiments is used by collection datastructures to refer to the images stored in the collection.

The image data 2110 is the actual full-size pixel data for displayingthe image (e.g., a series of color-space channel values for each pixelin the image or an encoded version thereof). In some embodiments, thisdata may be stored in a database of the image viewing, editing, andorganization application, or may be stored with the data of anotherapplication on the same device. In some embodiments, this additionalapplication is another image organization application that operates onthe device, on top of which the image viewing, editing, and organizationapplication operates.

Thus, the data structure may store a pointer to the local fileassociated with the application or an ID that can be used to query thedatabase of another application. In some embodiments, once theapplication uses the image in a journal or makes an edit to the image,the application automatically makes a local copy of the image file thatcontains the image data.

The edit instructions 2115 include information regarding any edits theuser has applied to the image. In this manner, the application storesthe image in a non-destructive format, such that the application caneasily revert from an edited version of the image to the original at anytime. For instance, the user can apply a tonal adjustment to the image,leave the application, and then reopen the application and remove thetonal adjustment at another time. The edits stored in these instructionsmay be crops and rotations, full-image exposure, tonal, and coloradjustments, localized adjustments, and special effects, as well asother edits that affect the pixels of the image. Some embodiments storethese editing instructions in a particular order, so that users can viewdifferent versions of the image with only certain sets of edits applied.

In some embodiments, the edit instructions 2115 are implemented as alist 2160 of edit operations. The list 2160 includes edit operationssuch as edits 2161, 2162, 2163, 2164, and 2165. Each edit operation inthe list 2160 specifies parameters necessary for carrying out the editoperation. For example, the edit operation 2162 in the list 2160specifies an edit to the image that applies an exposure adjustment. Insome embodiments, a set of edits are stored when a user-applied effectautomatically triggers additional, different effects to be applied tothe image. For example, a user-specified effect that expands the tonalrange of the image may automatically trigger a brightness adjustment.The list 2160 in some embodiments links the automatically triggerededits to the user-specified edit so that the set of edits can bereverted together.

In some embodiments, the list 2160 records the sequence of editoperations undertaken by the user in order to create the final editedimage. In some embodiments, the list 2160 stores the edit instructionsin the order that the image editing application applies the edits to theimage in order to generate an output image for display, as someembodiments define a particular order for the different possible editsprovided by the application. For example, some embodiments define anexposure adjustment as one of the edit operations to be applied prior tocertain other edit operations, such as localized adjustments and specialeffects. In some of these embodiments, the list 2160 stores the editinstructions for the exposure adjustment in a position (i.e., edit 2162)that would be applied before some of the other edit operations (e.g.,edits 2163-2165).

The cached image versions 2140 store versions of the image that arecommonly accessed and displayed, so that the application does not needto repeatedly generate these images from the full-size image data 2110.For instance, the application will often store a thumbnail for the imageas well as a display resolution version (e.g., a version tailored forthe image display area). The application of some embodiments generates anew thumbnail for an image each time an edit is applied, replacing theprevious thumbnail. Some embodiments store multiple display resolutionversions including the original image and one or more edited versions ofthe image.

Finally, the image data structure 2100 includes additional data 2150that the application might store with an image (e.g., locations andsizes of faces, etc.). In some embodiments, the additional data caninclude Exchangeable image file format (Exif) data, caption data, sharedimage data, tags on the image, or any other type of data. Exif data isstored by the camera that captured the image and includes variousinformation such as camera settings, GPS data, timestamps, etc. Captiondata includes a user-entered description of the image. A tag is itemthat enables the user to associate the image with various informationthat marks or identifies the image, for example, as a favorite, asflagged, as hidden, etc.

One of ordinary skill in the art will recognize that the image datastructure 2100 is only one possible data structure that the applicationmight use to store the required information for an image. For example,different embodiments might store additional or less information, storethe information in a different order, etc.

Returning to FIG. 20, the GUI 2000 includes a thumbnail display area2005, an image display area 2010, a first toolbar 2015, a second toolbar2020, and a third toolbar 2025. The thumbnail display area 2005 displaysthumbnails of the images in a selected collection. Thumbnails are smallrepresentations of a full-size image, and represent only a portion of animage in some embodiments. For example, the thumbnails in thumbnaildisplay area 2005 are all squares, irrespective of the aspect ratio ofthe full-size images. In order to determine the portion of a rectangularimage to use for a thumbnail, the application identifies the smallerdimension of the image and uses the center portion of the image in thelonger direction. For instance, with a 1600×1200 pixel image, theapplication would use a 1200×1200 square. To further refine the selectedportion for a thumbnail, some embodiments identify a center of all thefaces in the image (using a face detection algorithm), then use thislocation to center the thumbnail portion in the clipped direction. Thus,if the faces in the theoretical 1600×1200 image were all located on theleft side of the image, the application would use the leftmost 1200columns of pixels rather than cut off 200 columns on either side.

After determining the portion of the image to use for the thumbnail, theimage-viewing application generates a low resolution version (e.g.,using pixel blending and other techniques) of the image. The applicationof some embodiments stores the thumbnail for an image as a cachedversion 2140 of the image. Thus, when a user selects a collection, theapplication identifies all of the images in the collection (through thecollection data structure), and accesses the cached thumbnails in eachimage data structure for display in the thumbnail display area.

The user may select one or more images in the thumbnail display area(e.g., through various touch interactions described above, or throughother user input interactions). The selected thumbnails are displayedwith a highlight or other indicator of selection. In thumbnail displayarea 2005, the thumbnail 2030 is selected. In addition, as shown, thethumbnail display area 2005 of some embodiments indicates a number ofimages in the collection that have been flagged (e.g., having a tag forthe flag set to yes). In some embodiments, this text is selectable inorder to display only the thumbnails of the flagged images.

The application displays selected images in the image display area 2010at a larger resolution than the corresponding thumbnails. The images arenot typically displayed at the full size of the image, as images oftenhave a higher resolution than the display device. As such, theapplication of some embodiments stores a cached version 2140 of theimage designed to fit into the image display area. Images in the imagedisplay area 2010 are displayed in the aspect ratio of the full-sizeimage. When one image is selected, the application displays the image aslarge as possible within the image display area without cutting off anypart of the image. When multiple images are selected, the applicationdisplays the images in such a way as to maintain their visual weightingby using approximately the same number of pixels for each image, evenwhen the images have different aspect ratios.

The first toolbar 2015 displays title information (e.g., the name of thecollection shown in the GUI, a caption that a user has added to thecurrently selected image, etc.). In addition, the toolbar 2015 includesa first set of GUI items 2035-2038 and a second set of GUI items2040-2043.

The first set of GUI items includes a back button 2035, a grid button2036, a help button 2037, and an undo button 2038. The back button 2035enables the user to navigate back to a collection organization GUI, fromwhich users can select between different collections of images (e.g.,albums, events, journals, etc.). Selection of the grid button 2036causes the application to move the thumbnail display area on or off ofthe GUI (e.g., via a slide animation). In some embodiments, users canalso slide the thumbnail display area on or off of the GUI via a swipegesture. The help button 2037 activates a context-sensitive help featurethat identifies a current set of tools active for the user and provideshelp indicators for those tools that succinctly describe the tools tothe user. In some embodiments, the help indicators are selectable toaccess additional information about the tools. Selection of the undobutton 2038 causes the application to remove the most recent edit to theimage, whether this edit is a crop, color adjustment, etc. In order toperform this undo, some embodiments remove the most recent instructionfrom the set of edit instructions 2115 stored with the image.

The second set of GUI items includes a sharing button 2040, aninformation button 2041, a show original button 2042, and an edit button2043. The sharing button 2040 enables a user to share an image in avariety of different ways. In some embodiments, the user can send aselected image to another compatible device on the same network (e.g.,WiFi or Bluetooth network), upload an image to an image hosting orsocial media website, and create a journal (i.e., a presentation ofarranged images to which additional content can be added) from a set ofselected images, among others.

The information button 2041 activates a display area that displaysadditional information about one or more selected images. Theinformation displayed in the activated display area may include some orall of the Exif data stored for an image (e.g., camera settings,timestamp, etc.). When multiple images are selected, some embodimentsonly display Exif data that is common to all of the selected images.Some embodiments include additional tabs within the information displayarea for (i) displaying a map showing where the image or images werecaptured according to the GPS data, if this information is available and(ii) displaying comment streams for the image on any photo sharingwebsites. To download this information from the websites, theapplication uses the object ID stored for the image with the sharedimage data and sends this information to the website. The comment streamand, in some cases, additional information, are received from thewebsite and displayed to the user.

The show original button 2042 enables the user to toggle between theoriginal version of an image and the current edited version of theimage. When a user selects the button, the application displays theoriginal version of the image without any of the editing instructions2115 applied. In some embodiments, the appropriate size image is storedas one of the cached versions 2140 of the image, making it quicklyaccessible. When the user selects the button again 2042 again, theapplication displays the edited version of the image, with the editinginstructions 2115 applied.

The edit button 2043 allows the user to enter or exit edit mode. When auser has selected one of the sets of editing tools in the toolbar 2020,the edit button 2043 returns the user to the viewing and organizationmode, as shown in FIG. 20. When the user selects the edit button 2043while in the viewing mode, the application returns to the last used setof editing tools in the order shown in toolbar 2020. That is, the itemsin the toolbar 2020 are arranged in a particular order, and the editbutton 2043 activates the rightmost of those items for which edits havebeen made to the selected image.

The toolbar 2020, as mentioned, includes five items 2045-2049, arrangedin a particular order from left to right. The crop item 2045 activates acropping and rotation tool that allows the user to align crooked imagesand remove unwanted portions of an image. The exposure item 2046activates a set of exposure tools that allow the user to modify theblack point, shadows, contrast, brightness, highlights, and white pointof an image. In some embodiments, the set of exposure tools is a set ofsliders that work together in different combinations to modify the tonalattributes of an image. The color item 2047 activates a set of colortools that enable the user to modify the saturation and vibrancy, aswell as color-specific saturations (e.g., blue pixels or green pixels)and white balance. In some embodiments, some of these tools arepresented as a set of sliders. The brushes item 2048 activates a set ofenhancement tools that enable a user to localize modifications to theimage. With the brushes, the user can remove red-eye and blemishes, andapply or remove saturation and other features to localized portions ofan image by performing a rubbing action over the image. Finally, theeffects item 2049 activates a set of special effects that the user canapply to the image. These effects include gradients, tilt shifts,non-photorealistic desaturation effects, grayscale effects, variousfilters, etc. In some embodiments, the application presents theseeffects as a set of items that fan out from the toolbar 2025.

As stated, the UI items 2045-2049 are arranged in a particular order.This order follows the order in which users most commonly apply the fivedifferent types of edits. Accordingly, the editing instructions 2115 arestored in this same order, in some embodiments. When a user selects oneof the items 2045-2049, some embodiments apply only the edits from thetools to the left of the selected tool to the displayed image (thoughother edits remain stored within the instruction set 2115).

The toolbar 2025 includes a set of GUI items 2050-2054 as well as asettings item 2055. The auto-enhance item 2050 automatically performsenhancement edits to an image (e.g., removing apparent red-eye,balancing color, etc.). The rotation button 2051 rotates any selectedimages. In some embodiments, each time the rotation button is pressed,the image rotates 90 degrees in a particular direction. Theauto-enhancement, in some embodiments, comprises a predetermined set ofedit instructions that are placed in the instruction set 2115. Someembodiments perform an analysis of the image and then define a set ofinstructions based on the analysis. For instance, the auto-enhance toolwill attempt to detect red-eye in the image, but if no red-eye isdetected then no instructions will be generated to correct it.Similarly, automatic color balancing will be based on an analysis of theimage. The rotations generated by the rotation button are also stored asedit instructions.

The flag button 2052 tags any selected image as flagged. In someembodiments, the flagged images of a collection can be displayed withoutany of the unflagged images. The favorites button 2053 allows a user tomark any selected images as favorites. In some embodiments, this tagsthe image as a favorite and also adds the image to a collection offavorite images. The hide button 2054 enables a user to tag an image ashidden. In some embodiments, a hidden image will not be displayed in thethumbnail display area and/or will not be displayed when a user cyclesthrough the images of a collection in the image display area. Asdiscussed above by reference to FIG. 21, many of these features arestored as tags in the image data structure.

Finally, the settings button 2055 activates a context-sensitive menuthat provides different menu options depending on the currently activetoolset. For instance, in viewing mode the menu of some embodimentsprovides options for creating a new album, setting a key photo for analbum, copying settings from one photo to another, and other options.When different sets of editing tools are active, the menu providesoptions related to the particular active toolset.

One of ordinary skill in the art will recognize that the image viewingand editing GUI 2000 is only one example of many possible graphical userinterfaces for an image viewing, editing, and organizing application.For instance, the various items could be located in different areas orin a different order, and some embodiments might include items withadditional or different functionalities. The thumbnail display area ofsome embodiments might display thumbnails that match the aspect ratio oftheir corresponding full-size images, etc.

IV. Electronic Systems

Many of the above-described features and applications are implemented assoftware processes that are specified as a set of instructions recordedon a computer readable storage medium (also referred to as computerreadable medium). When these instructions are executed by one or morecomputational or processing unit(s) (e.g., one or more processors, coresof processors, or other processing units), they cause the processingunit(s) to perform the actions indicated in the instructions. Examplesof computer readable media include, but are not limited to, CD-ROMs,flash drives, random access memory (RAM) chips, hard drives, erasableprogrammable read-only memories (EPROMs), electrically erasableprogrammable read-only memories (EEPROMs), etc. The computer readablemedia does not include carrier waves and electronic signals passingwirelessly or over wired connections.

In this specification, the term “software” is meant to include firmwareresiding in read-only memory or applications stored in magnetic storagewhich can be read into memory for processing by a processor. Also, insome embodiments, multiple software inventions can be implemented assub-parts of a larger program while remaining distinct softwareinventions. In some embodiments, multiple software inventions can alsobe implemented as separate programs. Finally, any combination ofseparate programs that together implement a software invention describedhere is within the scope of the invention. In some embodiments, thesoftware programs, when installed to operate on one or more electronicsystems, define one or more specific machine implementations thatexecute and perform the operations of the software programs.

A. Mobile Device

The image editing and viewing applications of some embodiments operateon mobile devices. FIG. 22 is an example of an architecture 2200 of sucha mobile computing device. Examples of mobile computing devices includesmartphones, tablets, laptops, etc. As shown, the mobile computingdevice 2200 includes one or more processing units 2205, a memoryinterface 2210 and a peripherals interface 2215.

The peripherals interface 2215 is coupled to various sensors andsubsystems, including a camera subsystem 2220, a wireless communicationsubsystem(s) 2225, an audio subsystem 2230, an I/O subsystem 2235, etc.The peripherals interface 2215 enables communication between theprocessing units 2205 and various peripherals. For example, anorientation sensor 2245 (e.g., a gyroscope) and an acceleration sensor2250 (e.g., an accelerometer) is coupled to the peripherals interface2215 to facilitate orientation and acceleration functions.

The camera subsystem 2220 is coupled to one or more optical sensors 2240(e.g., a charged coupled device (CCD) optical sensor, a complementarymetal-oxide-semiconductor (CMOS) optical sensor, etc.). The camerasubsystem 2220 coupled with the optical sensors 2240 facilitates camerafunctions, such as image and/or video data capturing. The wirelesscommunication subsystem 2225 serves to facilitate communicationfunctions. In some embodiments, the wireless communication subsystem2225 includes radio frequency receivers and transmitters, and opticalreceivers and transmitters (not shown in FIG. 22). These receivers andtransmitters of some embodiments are implemented to operate over one ormore communication networks such as a GSM network, a Wi-Fi network, aBluetooth network, etc. The audio subsystem 2230 is coupled to a speakerto output audio (e.g., to output different sound effects associated withdifferent image operations). Additionally, the audio subsystem 2230 iscoupled to a microphone to facilitate voice-enabled functions, such asvoice recognition, digital recording, etc.

The I/O subsystem 2235 involves the transfer between input/outputperipheral devices, such as a display, a touch screen, etc., and thedata bus of the processing units 2205 through the peripherals interface2215. The I/O subsystem 2235 includes a touch-screen controller 2255 andother input controllers 2260 to facilitate the transfer betweeninput/output peripheral devices and the data bus of the processing units2205. As shown, the touch-screen controller 2255 is coupled to a touchscreen 2265. The touch-screen controller 2255 detects contact andmovement on the touch screen 2265 using any of multiple touchsensitivity technologies. The other input controllers 2260 are coupledto other input/control devices, such as one or more buttons. Someembodiments include a near-touch sensitive screen and a correspondingcontroller that can detect near-touch interactions instead of or inaddition to touch interactions.

The memory interface 2210 is coupled to memory 2270. In someembodiments, the memory 2270 includes volatile memory (e.g., high-speedrandom access memory), non-volatile memory (e.g., flash memory), acombination of volatile and non-volatile memory, and/or any other typeof memory. As illustrated in FIG. 22, the memory 2270 stores anoperating system (OS) 2272. The OS 2272 includes instructions forhandling basic system services and for performing hardware dependenttasks.

The memory 2270 also includes communication instructions 2274 tofacilitate communicating with one or more additional devices; graphicaluser interface instructions 2276 to facilitate graphic user interfaceprocessing; image processing instructions 2278 to facilitateimage-related processing and functions; input processing instructions2280 to facilitate input-related (e.g., touch input) processes andfunctions; audio processing instructions 2282 to facilitateaudio-related processes and functions; and camera instructions 2284 tofacilitate camera-related processes and functions. The instructionsdescribed above are merely exemplary and the memory 2270 includesadditional and/or other instructions in some embodiments. For instance,the memory for a smartphone may include phone instructions to facilitatephone-related processes and functions. The above-identified instructionsneed not be implemented as separate software programs or modules.Various functions of the mobile computing device can be implemented inhardware and/or in software, including in one or more signal processingand/or application specific integrated circuits.

While the components illustrated in FIG. 22 are shown as separatecomponents, one of ordinary skill in the art will recognize that two ormore components may be integrated into one or more integrated circuits.In addition, two or more components may be coupled together by one ormore communication buses or signal lines. Also, while many of thefunctions have been described as being performed by one component, oneof ordinary skill in the art will realize that the functions describedwith respect to FIG. 22 may be split into two or more integratedcircuits.

B. Computer System

FIG. 23 conceptually illustrates another example of an electronic system2300 with which some embodiments are implemented. The electronic system2300 may be a computer (e.g., a desktop computer, personal computer,tablet computer, etc.), phone, PDA, or any other sort of electronic orcomputing device. Such an electronic system includes various types ofcomputer readable media and interfaces for various other types ofcomputer readable media. Electronic system 2300 includes a bus 2305,processing unit(s) 2310, a graphics processing unit (GPU) 2315, a systemmemory 2320, a network 2325, a read-only memory 2330, a permanentstorage device 2335, input devices 2340, and output devices 2345.

The bus 2305 collectively represents all system, peripheral, and chipsetbuses that communicatively connect the numerous internal devices of theelectronic system 2300. For instance, the bus 2305 communicativelyconnects the processing unit(s) 2310 with the read-only memory 2330, theGPU 2315, the system memory 2320, and the permanent storage device 2335.

From these various memory units, the processing unit(s) 2310 retrievesinstructions to execute and data to process in order to execute theprocesses of the invention. The processing unit(s) may be a singleprocessor or a multi-core processor in different embodiments. Someinstructions are passed to and executed by the GPU 2315. The GPU 2315can offload various computations or complement the image processingprovided by the processing unit(s) 2310. In some embodiments, suchfunctionality can be provided using CoreImage's kernel shading language.

The read-only-memory (ROM) 2330 stores static data and instructions thatare needed by the processing unit(s) 2310 and other modules of theelectronic system. The permanent storage device 2335, on the other hand,is a read-and-write memory device. This device is a non-volatile memoryunit that stores instructions and data even when the electronic system2300 is off. Some embodiments use a mass-storage device (such as amagnetic or optical disk and its corresponding disk drive) as thepermanent storage device 2335.

Other embodiments use a removable storage device (such as a floppy disk,flash memory device, etc., and its corresponding drive) as the permanentstorage device. Like the permanent storage device 2335, the systemmemory 2320 is a read-and-write memory device. However, unlike storagedevice 2335, the system memory 2320 is a volatile read-and-write memory,such a random access memory. The system memory 2320 stores some of theinstructions and data that the processor needs at runtime. In someembodiments, the invention's processes are stored in the system memory2320, the permanent storage device 2335, and/or the read-only memory2330. For example, the various memory units include instructions forprocessing multimedia clips in accordance with some embodiments. Fromthese various memory units, the processing unit(s) 2310 retrievesinstructions to execute and data to process in order to execute theprocesses of some embodiments.

The bus 2305 also connects to the input and output devices 2340 and2345. The input devices 2340 enable the user to communicate informationand select commands to the electronic system. The input devices 2340include alphanumeric keyboards and pointing devices (also called “cursorcontrol devices”), cameras (e.g., webcams), microphones or similardevices for receiving voice commands, etc. The output devices 2345display images generated by the electronic system or otherwise outputdata. The output devices 2345 include printers and display devices, suchas cathode ray tubes (CRT) or liquid crystal displays (LCD), as well asspeakers or similar audio output devices. Some embodiments includedevices such as a touchscreen that function as both input and outputdevices.

Finally, as shown in FIG. 23, bus 2305 also couples electronic system2300 to a network 2325 through a network adapter (not shown). In thismanner, the computer can be a part of a network of computers (such as alocal area network (“LAN”), a wide area network (“WAN”), or anIntranet), or a network of networks, such as the Internet. Any or allcomponents of electronic system 2300 may be used in conjunction with theinvention.

Some embodiments include electronic components, such as microprocessors,storage and memory that store computer program instructions in amachine-readable or computer-readable medium (alternatively referred toas computer-readable storage media, machine-readable media, ormachine-readable storage media). Some examples of such computer-readablemedia include RAM, ROM, read-only compact discs (CD-ROM), recordablecompact discs (CD-R), rewritable compact discs (CD-RW), read-onlydigital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a varietyof recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.),flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.),magnetic and/or solid state hard drives, read-only and recordableBlu-Ray® discs, ultra density optical discs, any other optical ormagnetic media, and floppy disks. The computer-readable media may storea computer program that is executable by at least one processing unitand includes sets of instructions for performing various operations.Examples of computer programs or computer code include machine code,such as is produced by a compiler, and files including higher-level codethat are executed by a computer, an electronic component, or amicroprocessor using an interpreter.

While the above discussion primarily refers to microprocessor ormulti-core processors that execute software, some embodiments areperformed by one or more integrated circuits, such as applicationspecific integrated circuits (ASICs) or field programmable gate arrays(FPGAs). In some embodiments, such integrated circuits executeinstructions that are stored on the circuit itself. In addition, someembodiments execute software stored in programmable logic devices(PLDs), ROM, or RAM devices.

As used in this specification and any claims of this application, theterms “computer”, “server”, “processor”, and “memory” all refer toelectronic or other technological devices. These terms exclude people orgroups of people. For the purposes of the specification, the termsdisplay or displaying means displaying on an electronic device. As usedin this specification and any claims of this application, the terms“computer readable medium,” “computer readable media,” and “machinereadable medium” are entirely restricted to tangible, physical objectsthat store information in a form that is readable by a computer. Theseterms exclude any wireless signals, wired download signals, and anyother ephemeral signals.

While the invention has been described with reference to numerousspecific details, one of ordinary skill in the art will recognize thatthe invention can be embodied in other specific forms without departingfrom the spirit of the invention. For instance, many of the figuresillustrate various touch gestures (e.g., taps, double taps, swipegestures, press and hold gestures, etc.). However, many of theillustrated operations could be performed via different touch gestures(e.g., a swipe instead of a tap, etc.) or by non-touch input (e.g.,using a cursor controller, a keyboard, a touchpad/trackpad, a near-touchsensitive screen, etc.). In addition, a number of the figures (includingFIGS. 18 and 19) conceptually illustrate processes. The specificoperations of these processes may not be performed in the exact ordershown and described. The specific operations may not be performed in onecontinuous series of operations, and different specific operations maybe performed in different embodiments. Furthermore, the process could beimplemented using several sub-processes, or as part of a larger macroprocess. Thus, one of ordinary skill in the art would understand thatthe invention is not to be limited by the foregoing illustrativedetails, but rather is to be defined by the appended claims.

What is claimed is:
 1. A non-transitory machine readable medium storinga media editing application which when executed by at least oneprocessing unit performs tonal adjustments of an image displayed in themedia editing application using a slider track and a plurality of slidericons movably positioned along the slider track, said applicationcomprising sets of instructions for: detecting a first movement of aslider icon in a first direction along the slider track; linearlymodifying image pixel values of a first set of pixels of the displayedimage based on the first movement; detecting a second movement of theslider icon in a second direction opposite to the first direction alongthe slider track after detecting the first movement of the slider icon;and responsive to detecting the second movement of the slider icon inthe second direction opposite to the first direction, modifying imagepixel values for a second set of pixels of the displayed image based onthe second movement after linearly modifying the image pixel values ofthe first set of pixels, wherein the second set of pixels are modifiednon-linearly in a different manner than the first set of pixels inresponse to the second movement of the slider icon.
 2. Thenon-transitory machine readable medium of claim 1, wherein the firstmovement of the slider icon expands a tonal range of the image.
 3. Thenon-transitory machine readable medium of claim 1, wherein the secondmovement of the slider icon performs a shadow recovery operation thatselectively lifts image pixel values of the second set of pixels in ashadow region of the image.
 4. The non-transitory machine readablemedium of claim 1, wherein the second set of pixels is within a shadowregion of the image.
 5. The non-transitory machine readable medium ofclaim 4, wherein the shadow region is defined by pixels distributed inthe darkest half or darkest one third of the tonal range.
 6. Thenon-transitory machine readable medium of claim 4, wherein the shadowregion is determined based on weighting factors related to an overalldarkness or lightness of the image.
 7. The non-transitory machinereadable medium of claim 1, wherein the second set of pixels is within ahighlight region of the image, wherein the second movement of the slidericon reduces a brightness of the second set of pixels.
 8. Anon-transitory machine readable medium storing a media editingapplication which when executed by at least one processing unit controlsa plurality of sliders on a single slider track for modifying propertiesof an image, the application comprising sets of instructions for:receiving a user input to adjust a position of a particular sliderassociated with a first property of the image on the single slidertrack; identifying an adjusted position on the single slider track ofthe particular slider; based on the identified adjusted position of theparticular slider, determining a plurality of adjusted positions on thesingle slider track to move a plurality of other sliders of theplurality of sliders associated with other properties of the imagedifferent from the first property; and adjusting the image based on theadjusted positions of the particular slider and the plurality of othersliders, wherein the adjusted positions of the plurality of othersliders are based on a set of rules for repositioning the plurality ofother sliders in response to movement of the particular slider with atleast one of the plurality of other sliders being moved in a directionopposite to movement of the particular slider along the single slidertrack, and wherein each of the plurality of sliders have full range ofmotion along the single slider track.
 9. The non-transitory machinereadable medium of claim 8, wherein the application further comprisessets of instructions for: receiving a user input to display a unifiedslider tool comprising the particular slider, the plurality of othersliders, and the single slider track; and identifying initial positionsof the particular slider and the plurality of other sliders on thesingle slider track, wherein the unified slider tool is displayed basedon the initial positions of the sliders on the single slider track. 10.The non-transitory machine readable medium of claim 9, wherein the setof instructions for identifying the initial positions of the pluralityof sliders comprises analyzing the properties of the image anddetermining values for each of the properties of the image representedby the plurality of sliders.
 11. The non-transitory machine readablemedium of claim 8, wherein the user input to adjust the position of theparticular slider is a directional movement, wherein the applicationfurther comprises a set of instructions for converting the directionalmovement into a positional movement of the particular slider, whereinthe set of instructions for identifying the adjusted position of theparticular slider is performed based on the positional movement.
 12. Thenon-transitory machine readable medium of claim 11, wherein the set ofinstructions for adjusting the image comprises a set of instructions forlinearly modifying the first property of the image based on thedirectional movement.
 13. The non-transitory machine readable medium ofclaim 12, wherein the application further comprises sets of instructionsfor: detecting second directional movement of one of the plurality ofother sliders in a second opposite direction along the single slidertrack, and wherein the set of instructions for adjusting the imagecomprises a set of instructions for non-linearly modifying a secondproperty of the image based on the second directional movement.
 14. Thenon-transitory machine readable medium of claim 8, wherein the set ofinstructions for adjusting the image comprises a set of instructions forusing a transform that specifies a mapping of a set of image values ofthe image to a set of adjusted image values based on the adjustedpositions of the particular slider and the plurality of other sliders.15. A non-transitory machine readable medium storing a media editingapplication which when executed by at least one processing unit performstonal adjustments of an image displayed in an image display area of themedia editing application using a slider track and a plurality of slidericons movably positioned along the slider track, said applicationcomprising sets of instructions for: displaying the slider track and aplurality of slider icons positioned along the slider track according toan exposed tonal range of the displayed image; determining anunadvisable portion of the slider track that represents values for thetonal range that are beyond an advisable tonal range that may causeclipping; detecting a movement of a slider icon along the identifiedunadvisable portion of the slider track; and displaying a visualindication along the slider track that indicates that the slider icon ispositioned outside of the advisable tonal range upon detecting themovement of the slider icon along the identified unadvisable portion ofthe slider track, wherein initial positions of the slider icons on theslider track represent an initial visible tonal range of the displayedimage.
 16. The non-transitory machine readable medium of claim 15,wherein the advisable tonal range is a spectrum of image pixel valuesfrom a darkest pixel value to a lightest pixel value.
 17. Thenon-transitory machine readable medium of claim 15, wherein the imagedisplayed in the image display area appears distorted in response to theslider icon being moved along the identified unadvisable portion of theslider track, the application further comprising a set of instructionsfor clipping tonal values of the displayed image by assigning a sametonal value to multiple portions of the displayed image that haddifferent tonal values prior to the clipping upon detecting the movementof the slider icon along the identified unadvisable portion of theslider track.
 18. The non-transitory machine readable medium of claim15, wherein the initial tonal range cannot be reduced by movement of anyof the slider icons on the slider track.
 19. The non-transitory machinereadable medium of claim 15, wherein the initial visible tonal range ofthe image is a sub-range of the advisable tonal range which spans agreater range of image pixel values for the displayed image than theinitial visible tonal range.